powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / дать db2admin права на таблицу (DB2 LUW 10.1)
3 сообщений из 3, страница 1 из 1
дать db2admin права на таблицу (DB2 LUW 10.1)
    #39552630
Здравствуйте!

Имеется 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
дать db2admin права на таблицу (DB2 LUW 10.1)
    #39552761
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо при разработке бд права намеренно урезали.
Посмотрите привилегии для этой таблицы.
...
Рейтинг: 0 / 0
дать db2admin права на таблицу (DB2 LUW 10.1)
    #39552765
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хливкие Шорьки,

Добрый день.

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


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