powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Новый пользователь на сервер db2
56 сообщений из 56, показаны все 3 страниц
Новый пользователь на сервер db2
    #39756738
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
необходимо научиться добавлять нового пользователя на сервере AIX для того, чтобы он мог подключаться к базе, и имел ограниченное количество прав для работы с ней, например, только просмотр некоторых таблиц.
через консоль завожу нового пользователя и присоединяю его к определенной группе командой:
useradd -G <Group> -d /home/<UserName> -m <UserName>
passwd <Password>
далее, перезахожу в консоль под системным пользователем root и изменяю сеанс через команду su - <UserName>
но ничего не происходит.
если я пытаюсь через комманду su - зайти под другим пользователем, то мне предоставляется доступ к командам db2
подскажите, пожалуйста, где и что я делаю не так. Очень нужно. Спасибо!!
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39756782
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал выполнить через Toad
Код: sql
1.
 GRANT ALL ON TABLE "Z_TEST".TABLE TO USER username;

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

Попробую угадать смысл фразы "но ничего не происходит".
Если это означает, что при вызове процессора командной строки DB2 (DB2 CLP) "db2" вам выдается ошибка, что такая команда не найдена, то это означает, что окружение db2 не инициализировано.
Вы можете это сделать либо вызовом команды ниже только для текущей сессии, либо вставив этот вызов в login скрипт этого пользователя (~<UserName>/.profile или ~<UserName>/.bashrc - в зависимости от shell пользователя <UserName>), чтобы этот вызов происходил автоматически при регистрации пользователя в системе.

Код: plaintext
. ~ db2instance /sqllib/db2profile

Здесь db2instance - имя экземпляра db2, с базой которого пользователь должен работать.
Пробел между точкой и тильдой - обязателен.

Если я угадал смысл фразы неправильно, просьба ее расшифровать.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39756967
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Верно, пишет о том, что команда не найдена.
Но ведь другой пользователь имеет доступ к команда, когда из системного профиля происходит переключение на него. Как это объяснить?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39756975
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И ещё...если возможно, подскажи, пожалуйста, как это протестировать? Сначала захожу под системным пользователем root -> далее ввожу bash -> а потом...? Пробовал гуглить, куда эту команду впихнуть, но не нашел... Мой пользователь, через которого я хочу получать доступ к базе - db2start.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757002
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вывел юзеров. первый (db2start) - которого я создал, второй (dsadm) - существующий, которому доступны команды db2, есть переключаться на него из системного профиля:
Код: powershell
1.
2.
3.
db2start id=220 pgrp=staff groups=staff,db2ctrl home=/home/db2start shell=/usr/bin/ksh login=true su=true rlogin=true daemon=true admin=false sugroups=ALL admgroups= tpath=nosak ttys=ALL expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=files SYSTEM=compat logintimes= loginretries=0 pwdwarntime=0 account_locked=false minage=0 maxage=0 maxexpired=-1 minalpha=0 minloweralpha=0 minupperalpha=0 minother=0 mindigit=0 minspecialchar=0 mindiff=0 maxrepeats=8 minlen=0 histexpire=0 histsize=0 pwdchecks= dictionlist= default_roles= fsize=-1 cpu=-1 data=-1 stack=-1 core=-1 rss=-1 nofiles=-1 time_last_login=1546944095 tty_last_login=/dev/pts/1 host_last_login=172.28.20.122 unsuccessful_login_count=0 roles=

dsadm id=208 pgrp=dstage groups=dstage,staff,db2ctrl home=/home/dsadm shell=/bin/ksh login=true su=true rlogin=true daemon=true admin=false sugroups=ALL admgroups= tpath=nosak ttys=ALL expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=files SYSTEM=compat logintimes= loginretries=0 pwdwarntime=0 account_locked=false minage=0 maxage=0 maxexpired=-1 minalpha=0 minloweralpha=0 minupperalpha=0 minother=0 mindigit=0 minspecialchar=0 mindiff=0 maxrepeats=8 minlen=0 histexpire=0 histsize=0 pwdchecks= dictionlist= default_roles= fsize=-1 cpu=-1 data=-1 stack=-1 core=-1 rss=-1 nofiles=-1 time_last_login=1399018738 time_last_unsuccessful_login=1397714590 tty_last_login=/dev/pts/1 tty_last_unsuccessful_login=ssh host_last_login=192.168.106.116 host_last_unsuccessful_login=192.168.106.116 unsuccessful_login_count=21 roles=
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757011
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenkoвывел юзеров. первый (db2start) - которого я создал, второй (dsadm) - существующий, которому доступны команды db2, есть переключаться на него из системного профиля:
Код: powershell
1.
2.
3.
db2start id=220 pgrp=staff groups=staff,db2ctrl home=/home/db2start shell=/usr/bin/ksh login=true su=true rlogin=true daemon=true admin=false sugroups=ALL admgroups= tpath=nosak ttys=ALL expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=files SYSTEM=compat logintimes= loginretries=0 pwdwarntime=0 account_locked=false minage=0 maxage=0 maxexpired=-1 minalpha=0 minloweralpha=0 minupperalpha=0 minother=0 mindigit=0 minspecialchar=0 mindiff=0 maxrepeats=8 minlen=0 histexpire=0 histsize=0 pwdchecks= dictionlist= default_roles= fsize=-1 cpu=-1 data=-1 stack=-1 core=-1 rss=-1 nofiles=-1 time_last_login=1546944095 tty_last_login=/dev/pts/1 host_last_login=172.28.20.122 unsuccessful_login_count=0 roles=

dsadm id=208 pgrp=dstage groups=dstage,staff,db2ctrl home=/home/dsadm shell=/bin/ksh login=true su=true rlogin=true daemon=true admin=false sugroups=ALL admgroups= tpath=nosak ttys=ALL expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=files SYSTEM=compat logintimes= loginretries=0 pwdwarntime=0 account_locked=false minage=0 maxage=0 maxexpired=-1 minalpha=0 minloweralpha=0 minupperalpha=0 minother=0 mindigit=0 minspecialchar=0 mindiff=0 maxrepeats=8 minlen=0 histexpire=0 histsize=0 pwdchecks= dictionlist= default_roles= fsize=-1 cpu=-1 data=-1 stack=-1 core=-1 rss=-1 nofiles=-1 time_last_login=1399018738 time_last_unsuccessful_login=1397714590 tty_last_login=/dev/pts/1 tty_last_unsuccessful_login=ssh host_last_login=192.168.106.116 host_last_unsuccessful_login=192.168.106.116 unsuccessful_login_count=21 roles=

У db2start - ksh shell. Это значит, что вызов, который я написал, надо вставить в файл ~db2start/.profile
Если у dsadm команды db2 работают, то вам надо в точности вставить такие же строки в этот файл, которые выдаются командой:
Код: plaintext
grep -p db2profile ~dasadm/.profile

Открыть на редактирование этот файл можно, например, командой:
Код: plaintext
vi ~db2start/.profile
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757052
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

Поправка:
Код: plaintext
grep -p db2profile ~dsadm/.profile
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757072
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
предварительно создал чистого пользователя (mytusr), и добавил его во все Группы, в которых был пользователь dsadm.
провернул все действия, которые Вы указали, сравнил командой grep двух пользователей, получились идентичны.
на текущий момент получилось выполнить только одну db2-команду:
Код: plsql
1.
db2 list db directory


далее попробовал подключиться через команду db2 connect к базе, но появляется ошибка "SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001"
пробовал менять пароль через passwd, но ошибка не пропала при повторном коннекте.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757111
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...
далее попробовал подключиться через команду db2 connect к базе, но появляется ошибка "SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001"
пробовал менять пароль через passwd, но ошибка не пропала при повторном коннекте.
Вы могли создать пользователя так, что ему требуется изменить пароль при первом входе в систему.
Проверка:
Код: plaintext
grep -p "^mytusr:" /etc/security/passwd | grep -p ADMCHG

В этом случае одно из:
- из-под root:
Код: plaintext
pwdadm -c mytusr
- из-под mytusr:
Код: plaintext
su - mytusr
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757135
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
попробовал первую команду, и остальные 2 под разными пользователями - в ответ ничего не вывело(
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757164
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У этого экземпляра аутентификация точно в ОС, а не, скажем, в LDAP?
Если да, то:
Имя пользователя не более 8 символов и на нижнем регистре?
Можете этим пользователем зайти в систему, пройдя проверку пароля?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757179
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может быть, проблема в другом, и я не совсем понимаю, что к чему?
если посмотреть в мою методичку, там есть одна задача связанная с загрузкой данных.
и там последовательно выполняется ряд действий:
Код: plsql
1.
2.
3.
3.	su – dsadm
4.	db2 list db directory 
5.	db2 connect to EQ_QGPL user kxd using pass



это говорит о том, что пользователь к базе и пользователь на сервере - это разные пользователи.
соответственно, мне и пишет ошибку, потому что захожу не под тем пользователем.
но я попытался выполнить запрос, в котором указал пользователя и пароль, под которым захожу в базу, и все равно ничего не вышло.
Код: sql
1.
2.
1.	su – mytusr
2.	db2 connect to TEST user db2in using pass



или я не верно рассуждаю?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757191
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на Ваши вопросы ответ - да
Код: plsql
1.
2.
3.
4.
login as: mytusr
mytusr@192.168.98.198's password:
bash-4.1$ uname -a
AIX AIX-DS 1 7 00C5BDD74C00
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757212
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получается, я все это время, по незнанию, вводил Вас по неправильной дороге.
думал, что этот пользователь должен быть один для всех, хотя сам видел, что в группах не было пользователя, которым я подключаюсь к базе через Toad. а мне как раз этот и нужен.
можете подсказать, как его создать можно?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757240
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko,

Для локальных соединений (с сервера):
Если вы указываете в команде 'db2 connect' имя пользователя, то неважно, каким вы пользователем заходите в систему.
Если вы не указываете в команде 'db2 connect' имя пользователя, то вы заходите в базу тем пользователем, которым зашли в ОС.

Для удаленных соединений вы обязательно должны указывать имя пользователя и его пароль, которые заведены там, где в этом экземпляре настроена аутентификация. У вас, как я понял, она в ОС, т.е. пользователь должен там быть заведен.

Я не понимаю, почему у вас при аутентификации в ОС, когда вы завели пользователя, можете успешно логиниться в ОС этим пользователем (не через su от root, где пароль не спрашивается), в db2 в ответ на соответствующий системный вызов возвращается ошибка о неправельном имени или пароле.
Группы пользователя здесь ни при чем - у вас не проходит проверка имени пользователя и его пароля.

Вы либо что-то не так делаете (например, как вы в первом письме написали, 'passwd <Password>' - это непонятно что; изменение пароля пользователя делается командой passwd <UserName>), либо у вас пользователи не в ОС аутентифицируются.

Вы когда делаете:
Код: plaintext
su – mytusr
То из под него работают ли команды ниже?
Код: plaintext
1.
db2 connect to TEST
db2 connect to TEST user mytusr
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757261
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
после первой команды ошибка - "SQL30082N Security processing failed with reason "3" ("PASSWORD MISSING")."
после второй - "SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001"
авторнапример, как вы в первом письме написали, 'passwd <Password>' - это непонятно что
да, я не правильно написал, при такой записи выведет ошибку, что пользователь не найден. я пишу passwd newuser, а далее уже появляется новая строка с вводом пароля.
авторлибо у вас пользователи не в ОС аутентифицируются.
а как мне узнать? разве команда uname -a не дает ответ ?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757300
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko,

"SQL30082N Security processing failed with reason "3" ("PASSWORD MISSING")." в ответ на соединение без указания имени пользователя говорит о том, что вы обращаетесь к удаленной базе (находящейся либо на том же сервере, но зарегистрированной как удаленная, либо находящейся на другом сервере).

Дайте вывод команд:
Код: plaintext
1.
2.
db2 list db directory
db2 list node directory
db2 get dbm cfg | grep -i plugin
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757315
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
1)
там их больше, так что одну скину:
Database 6 entry:

Database alias = T_D
Database name = BVEB_WH
Node name = TEST
Database release level = d.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =

2)
SQL0104N An unexpected token "directory" was found following "LIST". Expected tokens may include: "ACTIVE". SQLSTATE=42601

3)
Client Userid-Password Plugin (CLNT_PW_PLUGIN) =
Client Kerberos Plugin (CLNT_KRB_PLUGIN) =
Group Plugin (GROUP_PLUGIN) =
GSS Plugin for Local Authorization (LOCAL_GSSPLUGIN) =
Server Plugin Mode (SRV_PLUGIN_MODE) = UNFENCED
Server List of GSS Plugins (SRVCON_GSSPLUGIN_LIST) =
Server Userid-Password Plugin (SRVCON_PW_PLUGIN) =
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757318
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2) исправленный к п 1:

Node 5 entry:

Node name = TEST
Comment =
Directory entry type = LOCAL
Protocol = TCPIP
Hostname = 192.168.98.206
Service name = 60008
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757360
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У вас база зарегистрирована на хосте с 192.168.98.206:
AVRomanenkoDatabase 6 entry:

Database alias = T_D
Database name = BVEB_WH
Node name = TEST
...

Node 5 entry:

Node name = TEST
Comment =
Directory entry type = LOCAL
Protocol = TCPIP
Hostname = 192.168.98.206
Service name = 60008
Пользователя вы добавляете на хосте с 192.168.98.198, судя по:
AVRomanenkologin as: mytusr
mytusr@192.168.98.198's password:
bash-4.1$ uname -a
AIX AIX-DS 1 7 00C5BDD74C00

Так?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757378
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да...
я уже перешел на .206 сервер, там завел нового пользователя, добавил в profile нужные строки, вызвал коннектор к базе, получилось, теперь пытаюсь добавить права к базе для пользователя:
Код: plsql
1.
db2 => GRANT CONNECT TO DATABASE T_D TO USER MYTUSR


но получаю ошибку:
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL5193N The current session user does not have usage privilege on any
enabled workloads. SQLSTATE=42524
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757418
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...
но получаю ошибку:
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL5193N The current session user does not have usage privilege on any
enabled workloads. SQLSTATE=42524
Почитайте, что пишется в выводе комнды:
Код: plaintext
1.
db2 "? SQL5193N"
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757421
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko,

Виноват:
Код: plaintext
1.
2.
3.
Не:
GRANT CONNECT TO DATABASE T_D TO USER MYTUSR
а:
GRANT CONNECT ON DATABASE TO USER MYTUSR
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39757635
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
не получилось (
...
Рейтинг: 0 / 0
Новый пользователь на сервер 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
Новый пользователь на сервер db2
    #39758444
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenkoправильно я понимаю, что роль и группа имеют одинаковые свойства, только роль создается на уровне базы, а группа на уровне ОС?
с ролью разобрался, с группами как-то не совсем понимаю, как можно давать права на группу, чтобы пользователь состоя в этой группе получал доступ к базе.В DB2 проверка имени пользователя и его пароля, принадлежность пользователя к группам проверяется во внешнем источнике - там, где настроена аутентификация, с помощью соответствующих API вызовов. По-умолчанию - в ОС.
Внутри DB2 хранятся только гранты пользователей и групп на разные объекты. Причем эти имена в командах GRANT никак не проверяются во внешнем источнике и не синхронизируются с ним. Т.е. вы можете дать права несуществующему пользователю или группе, и это будет просто ненужная информация.
Когда пользователь обращается к таблице, то DB2 проверяет, имеет ли он такие права примерно в таком порядке:
- имеет ли этот пользователь права лично
- входит ли пользователь хотя бы в одну из групп, которым даны нужные права на таблицу (по системному каталогу DB2, где после каждого GRANT соотв. информация сохраняется); получение списка групп пользователя делается с помощью обращения через соотв. API во внешний источник, потом два списка сравниваются
- имеет ли пользователь права через роли, данные ему лично или одной из его группAVRomanenkoи еще, для моего понимания, объясните, пожалуйста, доступ к группе открывает возможность работать с базой именно через консоль?
можно ли что-то сделать с тем, когда у нового пользователя нет изначально доступа к командам db2?
(при создании пользователя указать каталог useradd /home/db2inst1/sqllib/db2profile/<user> -m <user>, или я несу чушь? :) )Не надо в качестве домашнего каталога указывать подкаталог из домашнего каталога другого пользователя - так в unix не делают.
Пользователь создается как обычно, со своим собственным home.
Специльно для работы из консоли ни в какие дополнительные группы пользователя включать не обязательно.
Для работы через консоль от любого кользователя вы должны инициализировать соответствующие переменные окружения. Я уже писал, как это делается: вызовом команды ниже либо руками в сессии пользователя, либо в его login скрипте (здесь предполагается, что имя экзкмпляра db2 - db2inst1).
Код: plaintext
. ~db2inst1/sqllib/db2profile
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758462
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
Вы писали
авторудобно сделать одно из:
- создать роль, грантовать ей эти права, новому пользователю грантовать эту роль
- создать группу в ОС, грантовать ей эти права, нового пользователя включать в эту группу
это значит, что я могу использовать один из вариантов.
допустим, я выбрал второй вариант - я создал группу, но как мне дать гранты, например, на CONNECT TO DB? мне предлагают только раздавать права на роль
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758467
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenko...
допустим, я выбрал второй вариант - я создал группу, но как мне дать гранты, например, на CONNECT TO DB? мне предлагают только раздавать права на рольКто или что предлагают?

Код: plaintext
 GRANT  CONNECT ON DATABASE TO GROUP <MYGROUP>
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758497
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
гуглил...и там не нашел подобного, только SQL-команды для новой ROLE, но я попробовал, и Ваш скрипт отлично работает...а еще, можно узнать, как смотреть экземпляр db2? допустим, здесь оказался db2inst1, а в др месте может быть другой, например?
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39758509
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AVRomanenkoможно узнать, как смотреть экземпляр db2? допустим, здесь оказался db2inst1, а в др месте может быть другой, например?
На сервере может быть установлено несколько кодов db2, каждый из них может управлять несколькими экземплярами.
Вы можете получить все установленные коды с помощью вызова команды ниже, которая, как правило, является ссылкой на утилиту db2ls из-под какого-нибудь из этих кодов.
Код: plaintext
/usr/local/bin/db2ls

Из поля 'Install Path' берете любой путь, (пусть это, скажем, ${DB2DIR}) и:
Код: plaintext
${DB2DIR}/bin/db2greg -dump | grep '^I,DB2,'

Получаете список экземпляров с информацией о том, каким кодом DB2 каждый управляется.
Для того, чтоб начать работать с нужным экземпляром (скажем, db2inst ), выполняете в сессии 2 команды (1-ю можно пропустить, если в этой сессии еще ни с одним экземпляром не работали):
Код: plaintext
1.
2.
db2 terminate
. ~ db2inst /sqllib/db2profile
и можете начинать работать.
...
Рейтинг: 0 / 0
Новый пользователь на сервер db2
    #39759258
AVRomanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein, большое спасибо Вам! Очень выручили меня.
...
Рейтинг: 0 / 0
56 сообщений из 56, показаны все 3 страниц
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Новый пользователь на сервер db2
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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