Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / дать db2admin права на таблицу (DB2 LUW 10.1) / 3 сообщений из 3, страница 1 из 1
14.11.2017, 08:49
    #39552630
дать db2admin права на таблицу (DB2 LUW 10.1)
Здравствуйте!

Имеется DB2/NT64 10.1.0.872. В одной из баз данных в схеме pstate есть таблица eventlog, куда уже много лет пишутся данные. Хочу удалить устаревшие логи. Подключаюсь к БД как db2admin.
При попытке удаления DB2 выдаёт SQL0551N, недостаточно прав.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
db2 => delete from pstate.eventlog where created < '2016-01-01 00:00:00'
DB21034E  Данная команда обрабатывалась как оператор SQL, поскольку она не
является допустимой командой процессора командной строки.  При обработке SQL
было получено сообщение:
SQL0551N  "DB2ADMIN" не обладает правами или привилегией для выполнения
операции "DELETE" над объектом "PSTATE.EVENTLOG".  SQLSTATE=42501

db2 => select * from pstate.eventlog fetch first 5 rows only
SQL0551N  "DB2ADMIN" не обладает правами или привилегией для выполнения
операции "SELECT" над объектом "PSTATE.EVENTLOG".  SQLSTATE=42501

В "соседних" БД этого экземпляра таких проблем не наблюдается. Почему db2admin, который, вроде бы, должен иметь права делать всё, не может DML-команды к таблице, и как дать ему недостающие права? Если у меня несколько пользователей в группе DB2ADMNS, можно ли каким-то способом дать им всем сразу права на DDL и DML над всеми существующим объектами БД?
...
Рейтинг: 0 / 0
14.11.2017, 11:26
    #39552761
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дать db2admin права на таблицу (DB2 LUW 10.1)
Видимо при разработке бд права намеренно урезали.
Посмотрите привилегии для этой таблицы.
...
Рейтинг: 0 / 0
14.11.2017, 11:30
    #39552765
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дать db2admin права на таблицу (DB2 LUW 10.1)
Хливкие Шорьки,

Добрый день.

В документации по каждой команде, в т.ч. и по DELETE statement , перечислены права, которыми должен обладать пользователь.
В данном случае:
Код: plaintext
1.
2.
    DELETE privilege on the table, view, or nickname from which rows are to be deleted
    CONTROL privilege on the table, view, or nickname from which rows are to be deleted
     DATAACCESS authority 

Авторизация DATAACCESS для группы DB2ADMNS - это то, что вам нужно, если, конечно, это не слишком широкие права в базе.
Права в DB2 могут быть выданы пользователям, группам пользователям, ролям. Поэтому, чтоб проверить, через что конкретный пользователь получил аторизацию/привилегии, надо в запросе использовать пару функций, проверяющих принадлежность пользователя к группам и наличию у него ролей.
Проверка DATAACCESS для пользователя DB2ADMIN
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT P.GRANTEE, P.GRANTEETYPE
FROM SYSCAT.DBAUTH P
CROSS JOIN TABLE(VALUES 'DB2ADMIN') 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.GRANTEE AND U.AUTHIDTYPE=P.GRANTEETYPE
WHERE P.DATAACCESSAUTH='Y';


Права пользователя DB2ADMIN на таблицу PSTATE.EVENTLOG
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT  
  P.PRIVILEGE, P.OBJECTTYPE, P.OBJECTSCHEMA, P.OBJECTNAME
, U.AUTHID, U.AUTHIDTYPE
FROM SYSIBMADM.PRIVILEGES P
CROSS JOIN TABLE(VALUES 'DB2ADMIN') 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
WHERE P.OBJECTSCHEMA='PSTATE' AND P.OBJECTNAME='EVENTLOG' AND P.OBJECTTYPE='TABLE'
ORDER BY 2, 3, 4;

...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / дать db2admin права на таблицу (DB2 LUW 10.1) / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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