powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Новый пользователь на сервер db2
25 сообщений из 56, страница 2 из 3
Новый пользователь на сервер db2
    #39757655
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с этим разобрался, ошибка появляется из-за того, что я пытаюсь выдать прапа пользователю тем же пользователем.
зашел под другим, и смог провести GRANT. выдал на connect, load on db, но при попытке войти под логином и паролем через Toad, выдает ошибку:
ERROR [42524] [IBM][DB2/AIX64] SQL0969N There is no message text corresponding to SQL error "-5193" in the message file on this workstation. The error was returned from module "SQLRW00C" with original tokens "". SQLSTATE=42524
открывает обозреватель, но выбрать и открыть ничего не могу. МОжет, нужно какие-то другие привилегии прописывать для пользователя ?
[img=]
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757717
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...но при попытке войти под логином и паролем через Toad, выдает ошибку:
ERROR [42524] [IBM][DB2/AIX64] SQL0969N There is no message text corresponding to SQL error "-5193" in the message file on this workstation. The error was returned from module "SQLRW00C" with original tokens "". SQLSTATE=42524
открывает обозреватель, но выбрать и открыть ничего не могу. МОжет, нужно какие-то другие привилегии прописывать для пользователя ?
[img=]
Вы можете либо получать описание ошибок из командной строки, как я написал ранее, либо смотреть в документации.
SQL5193N
По этой ошибке смотрите Granting the USAGE privilege on a workload .
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757726
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
посмотрел описание, там есть момент с workload, для которой должно быть предоставлено право использования.
и синтаксис:
Код: plsql
1.
 GRANT USAGE ON WORKLOAD <CAMPAIGN> TO USER <USER>   


так же написано, что SYSDEFAULTUSERWORKLOAD является рабочей нагрузкой по умолчанию.

Просто я побаиваюсь вводить такие команды, где нужно что-то включать или выключать. Подскажите, это безопасно, или нужно каким-то образом workload узнать?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757753
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...
так же написано, что SYSDEFAULTUSERWORKLOAD является рабочей нагрузкой по умолчанию.

Просто я побаиваюсь вводить такие команды, где нужно что-то включать или выключать. Подскажите, это безопасно, или нужно каким-то образом workload узнать?
Вот все ваши workload'ы с информацией о том, включены они или нет:
Код: sql
1.
select WORKLOADNAME, ENABLED from syscat.workloads;


Вот информация о том, какие привилегии имеет пользователь <USER> на workload'ы либо лично, либо через группы или роли:
Код: 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 '<USER>') 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.OBJECTTYPE='WORKLOAD'
ORDER BY 2, 3, 4;


Насчет безопасно или нет что-то включать/выключать - спросите своего админа. У него могут быть свои соображения на этот счет.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757765
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
по первому запросу вывело: SYSDEFAULTUSERWORKLOAD и SYSDEFAULTADMWORKLOAD
а по второму пусто....
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757777
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал отдельно получить результаты по таблицам:
AUTH_LIST_GROUPS_FOR_AUTHID
AUTH_LIST_ROLES_FOR_AUTHID
по первой получил: DASADM1, DWGRP, STAFF для уже имеющегося пользователя, STAFF для нового пользователя.
по второй таблице пусто ка обоих пользователей.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757813
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenkoпо первому запросу вывело: SYSDEFAULTUSERWORKLOAD и SYSDEFAULTADMWORKLOAD
а по второму пусто....Смысл запросов:
- 1-й показывает не только список workload'ов, но и доступны они для использования или нет (поле ENABLED)
- Если для какого-то пользователя 2-й запрос возвращает пусто или только workload'ы из первого запроса, у которых ENABLED='N', то пользовательская сессия (справедливо для пользователя, не имеющего WLMADM или DBADM в базе) не может быть ассоциирована ни с одним workload'ом (как для вашего нового пользователя)
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757855
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
по первому запросу поле Enable = Y
правильно ли я понимаю, что мне теперь нужно сделать:
Код: plsql
1.
GRANT DBADM ON DATABASE TO MYTUSR


а потом:
Код: plsql
1.
GRANT USAGE ON WORKLOAD SYSDEFAULTUSERWORKLOAD TO USER MYTUSR


и для второго WORKLOAD аналогично, чтобы наконец я смог авторизоваться и работать с базой через Toad?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757917
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...
правильно ли я понимаю, что мне теперь нужно сделать
...
чтобы наконец я смог авторизоваться и работать с базой через ToadДля возможности ассоциации с workload'ом необязательно давать пользователю DBADM - это слишком широкие права.
Достаточно одно из:
- дать права пользователю на SYSDEFAULTUSERWORKLOAD
- найти / создать новый workload так, чтобы все его connection-attributes соответствовали атрибутам сессии, и дать пользователю права не него

Toad'у для нормальной работы могут понадобиться еще и права на чтения из представлений системного каталога, чтоб показывать вам всякие метаданные (списки и свойства объектов базы, например). Поэтому, могут понадобиться еще и права на представления схемы SYSCAT. Может еще что-то. Я не работаю с Toad и не знаю, что там ему еще надо...
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757933
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
вышло!) выполнил вторую команду для workload
только вот что-то странное.
новому пользователю права на таблицы и схемы я не давал, только одну группу staff.
и в таблице SYSCAT.TABAUTH тоже нет ни одной строки с новым пользователем.
но у него сейчас есть полный доступ ко всем таблицам и схемам.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757941
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
из всех привилегий у пользователя только одна, на базу - GRANT CONNECT.
у меня предположение, что это или из-за группы staff, или из-за workload...
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758004
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenkoиз всех привилегий у пользователя только одна, на базу - GRANT CONNECT.
у меня предположение, что это или из-за группы staff, или из-за workload...В db2 пользователь может иметь права на объект, если они выданы на группу или роль пользователя, а не только ему лично.
Немного модифицированный запрос, позволяющий понять, как именно данный пользователь (не имеющий DATAACCESS в базе, иначе он и без этого имеет rw права) получил права на представление в данном случае.
Права пользователя '<USER>' на view SYSCAT.TABLES
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT  
  P.PRIVILEGE, P.OBJECTTYPE, P.OBJECTSCHEMA, P.OBJECTNAME
, U.AUTHID, U.AUTHIDTYPE
FROM SYSIBMADM.PRIVILEGES P
CROSS JOIN TABLE(VALUES '<USER>') 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 = 'SYSCAT' AND P.OBJECTNAME='TABLES' 
--AND P.OBJECTTYPE='VIEW'
--AND P.PRIVILEGE='SELECT'
ORDER BY 2, 3, 4;

...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758010
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
почему-то ничего не вывело. пробовал и начальный запрос, и с добавление пользователя.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758020
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выполнил запрос такой:
Код: plsql
1.
 SELECT * FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('MYTUSR', 'U') ) AS T 


получил выборку
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758029
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko,

Я ведь написал, что этот запрос есть смысл использовать, если у пользователя нет DATAACCESS на базу.
Согласно вашему запросу, у этого пользователя есть такие права, выданные ему лично.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758040
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
подскажите, что мне нужно сделать? я отозвал полномочия на dataaccess, и у меня выдает ошибку на это при подключении, логично.
но мне нужен доступ для этого пользователь только к одной таблице. я не понимаю, какие действия нужно выполнить (
grant на таблицу и схему не дали результатов.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758054
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko,

Просьба не писать о проблеме типа "и у меня выдает ошибку на это при подключении". По каждой проблеме желательно приводить саму команду и полное сообщение об ошибке.
Если это SQL5193N, то проверяйте права пользователя на workload'ы.
Если это SQL0551N, то проверяйте права пользователя на таблицу.
Оба запроса я уже привел.
Если выдаются пустые результаты, надо разбираться, почему вроде бы при выданных правах их нет на самом деле.
Если что-то другое - укажите, как я здесь попросил...
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758061
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
извини за малую информативность. да, вторая ошибка была - SQL0551N "MYTUSR" does not have the required authorization or privilege to perform operation "EXECUTE" on object "NULLID.SYSSH200". но ничего нигде на находит. все скрипты перепробовал...
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758082
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...вторая ошибка была - SQL0551N "MYTUSR" does not have the required authorization or privilege to perform operation "EXECUTE" on object "NULLID.SYSSH200". но ничего нигде на находит. все скрипты перепробовал...Это отсутствие прав на т.н. DB2 CLI пакеты.
В non-restrictive базе права их выполнять даются всем пользователям. У вас, видимо, нет.

Вы можете сгенерировать запросом команды выдачи прав вашему пользователю, а потом эти сгенерированные команды выполнить.
Код: sql
1.
2.
3.
select 'GRANT EXECUTE ON PACKAGE "'||pkgschema||'"."'||pkgname||'" TO USER MYTUSR;'
from syscat.packages
where pkgschema='NULLID' and (pkgname like 'SYS%' or pkgname like 'SQLL9%');
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758265
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein, доброе утро!! сделал, как Вы сказали, предварительно удалив DATAACCESS у нового пользователя.
появляются новые ошибки, сначала ругалось на SYSCAT.SCHEMATA, теперь так:
SQL0551N "MYTUSR" does not have the required authorization or privilege to perform operation "SELECT" on object "SYSIBM.SYSDUMMY1".
следовательно, нужно делать GRANT SELECT на все объекты, правильно? а можно получать их список, аналогично packages из вашего прошлого запроса?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758269
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выполняю запрос:
Код: sql
1.
list tables for SYSTEM


но мне выводит полный список, их там 646, но наверняка, их нужно меньше. или я вообще не туда рою?)
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758294
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko,

Объектов разных в базе много, навряд ли вам надо прямо на все права давать.
Для инструментов типа Toad обычно достаточно дать права на представления в схеме SYSCAT + некоторые таблицы/представления в схеме SYSIBM (к ним обычно не рекомендуется обращаться за редким исключением типа SYSIBM.SYSDUMMY1) по необходимости.
Список таблиц и представлений в DB2 можно получить из SYSCAT.TABLES .
Генерация команд выдачи прав на чтение на представления схемы SYSCAT
Код: sql
1.
2.
3.
4.
5.
6.
select 'GRANT SELECT ON TABLE "'||tabschema||'"."'||tabname||'" TO USER MYTUSR;'
from syscat.tables
where 
tabschema='SYSCAT'
--tabschema in ('SYSCAT', 'SYSIBM')
;

...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758313
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein, как же сложно впервые это делать без знания и понимания....Вы очень сильно меня выручили снова, спасибо огромное.
Я получил список объектов SYSCAT, но решил пока не давать пользователю все права, пошагово получал список ошибок и давал привилегии по ним, по итогу, чтобы открыть таблицу, нужно было дать 6 привилегий, но понимаю, что есть еще индексы, модули, алиасы, функции и тд, которые хранятся в схеме, и чтобы был доступ к ним, все же нужно применять скрипт, который Вы давали последним. но на текущее состояния, мне кажется, что все выполнено успешно - у меня есть пользователь, который имеет доступ только к одной схеме и права только на таблицу в этой схеме.
буду пробовать создать нового пользователя на чистовую, и обязательно составлю методичку по этому)
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758326
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...
буду пробовать создать нового пользователя на чистовую, и обязательно составлю методичку по этому)Если для новых пользователей нужен будет тот же набор прав или бОльшая его часть, то удобно сделать одно из:
- создать роль, грантовать ей эти права, новому пользователю грантовать эту роль
- создать группу в ОС, грантовать ей эти права, нового пользователя включать в эту группу
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758346
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
правильно я понимаю, что роль и группа имеют одинаковые свойства, только роль создается на уровне базы, а группа на уровне ОС?
с ролью разобрался, с группами как-то не совсем понимаю, как можно давать права на группу, чтобы пользователь состоя в этой группе получал доступ к базе.
и еще, для моего понимания, объясните, пожалуйста, доступ к группе открывает возможность работать с базой именно через консоль?
можно ли что-то сделать с тем, когда у нового пользователя нет изначально доступа к командам db2?
(при создании пользователя указать каталог useradd /home/db2inst1/sqllib/db2profile/<user> -m <user>, или я несу чушь? :) )
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Новый пользователь на сервер db2
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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