powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / создать DDL скрипт для существующего пользователя
4 сообщений из 4, страница 1 из 1
создать DDL скрипт для существующего пользователя
    #39969373
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно ли запросами? т.е. вытянуть из базы все гранты, привилегии, которые есть у пользователя, чтобы повторить их на другой базе?
UDB
...
Рейтинг: 0 / 0
создать DDL скрипт для существующего пользователя
    #39969512
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sintetik,

Пользователь может иметь права на объекты не только напрямую, но и через группы и роли.
В разных базах пользователь может входить в разные группы, у него и у его групп могут быть разные права.

Есть:

- системные представления в SYSCAT с правами:
Код: sql
1.
2.
3.
SELECT TABNAME
FROM SYSCAT.TABLES
WHERE TABSCHEMA = 'SYSCAT' AND TABNAME LIKE '%AUTH';


- сводное представление SYSIBMADM.PRIVILEGES, основанное на этих представлениях и не делающее различия между основной привилегией и ней же с 'WITH GRANT OPTION'
- пара функций, выдающих группы и роли пользователя, которые можно использовать примерно так (какие права на какие объекты у пользователя есть и напрямую, и через группы и роли):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT  
  P.PRIVILEGE, P.OBJECTTYPE, P.OBJECTSCHEMA, P.OBJECTNAME, P.OBJECTTYPE
, U.AUTHID, U.AUTHIDTYPE
FROM SYSIBMADM.PRIVILEGES P
CROSS JOIN TABLE(VALUES 'MY_USER_NAME') A (AUTHID)
JOIN TABLE (
SELECT GROUP, 'G' FROM TABLE(AUTH_LIST_GROUPS_FOR_AUTHID(A.AUTHID))
  UNION ALL
select ROLENAME, 'R' FROM TABLE(AUTH_LIST_ROLES_FOR_AUTHID(A.AUTHID, 'U'))
  UNION ALL
SELECT * FROM TABLE(VALUES ('PUBLIC', 'G'), (A.AUTHID, 'U')) T (AUTHID, AUTHIDTYPE)
) U (AUTHID, AUTHIDTYPE) ON U.AUTHID=P.AUTHID AND U.AUTHIDTYPE=P.AUTHIDTYPE;



Всё это можно использовать для генерации команд GRANT.


P.S.:
Аббревиатура DB2 UDB для вышла из использования, начиная по-моему с 9.1. Это было уже довольно давно.
Вместо этого лучше указывать номер версии.
...
Рейтинг: 0 / 0
создать DDL скрипт для существующего пользователя
    #39970168
witte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

А db2look в этом случае не поможет?
...
Рейтинг: 0 / 0
создать DDL скрипт для существующего пользователя
    #39970333
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
witte
А db2look в этом случае не поможет?
db2look выбирает все гранты. У неё нет возможноти выбрать только для одного пользователя. Это если только потом фильтровать вывод по этому конкретному пользователю, то да.
Ну и если в базах пользователь принадлежит разным группам и имеет разные роли, то групповые и ролевые гранты не помогут.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / создать DDL скрипт для существующего пользователя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]