Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Новый пользователь на сервер db2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4788
AVRomanenko
правильно я понимаю, что роль и группа имеют одинаковые свойства, только роль создается на уровне базы, а группа на уровне ОС?
с ролью разобрался, с группами как-то не совсем понимаю, как можно давать права на группу, чтобы пользователь состоя в этой группе получал доступ к базе.
В DB2 проверка имени пользователя и его пароля, принадлежность пользователя к группам проверяется во внешнем источнике - там, где настроена аутентификация, с помощью соответствующих API вызовов. По-умолчанию - в ОС.
Внутри DB2 хранятся только гранты пользователей и групп на разные объекты. Причем эти имена в командах GRANT никак не проверяются во внешнем источнике и не синхронизируются с ним. Т.е. вы можете дать права несуществующему пользователю или группе, и это будет просто ненужная информация.
Когда пользователь обращается к таблице, то DB2 проверяет, имеет ли он такие права примерно в таком порядке:
- имеет ли этот пользователь права лично
- входит ли пользователь хотя бы в одну из групп, которым даны нужные права на таблицу (по системному каталогу DB2, где после каждого GRANT соотв. информация сохраняется); получение списка групп пользователя делается с помощью обращения через соотв. API во внешний источник, потом два списка сравниваются
- имеет ли пользователь права через роли, данные ему лично или одной из его групп
AVRomanenko
и еще, для моего понимания, объясните, пожалуйста, доступ к группе открывает возможность работать с базой именно через консоль?
можно ли что-то сделать с тем, когда у нового пользователя нет изначально доступа к командам db2?
(при создании пользователя указать каталог useradd /home/db2inst1/sqllib/db2profile/<user> -m <user>, или я несу чушь? :) )
Не надо в качестве домашнего каталога указывать подкаталог из домашнего каталога другого пользователя - так в unix не делают.
Пользователь создается как обычно, со своим собственным home.
Специльно для работы из консоли ни в какие дополнительные группы пользователя включать не обязательно.
Для работы через консоль от любого кользователя вы должны инициализировать соответствующие переменные окружения. Я уже писал, как это делается: вызовом команды ниже либо руками в сессии пользователя, либо в его login скрипте (здесь предполагается, что имя экзкмпляра db2 - db2inst1).
. ~db2inst1/sqllib/db2profile
11 янв 19, 13:59    [21782822]     Ответить | Цитировать Сообщить модератору
 Re: Новый пользователь на сервер db2  [new]
AVRomanenko
Member

Откуда:
Сообщений: 42
Mark Barinstein,
Вы писали
автор
удобно сделать одно из:
- создать роль, грантовать ей эти права, новому пользователю грантовать эту роль
- создать группу в ОС, грантовать ей эти права, нового пользователя включать в эту группу

это значит, что я могу использовать один из вариантов.
допустим, я выбрал второй вариант - я создал группу, но как мне дать гранты, например, на CONNECT TO DB? мне предлагают только раздавать права на роль
11 янв 19, 14:35    [21782871]     Ответить | Цитировать Сообщить модератору
 Re: Новый пользователь на сервер db2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4788
AVRomanenko
...
допустим, я выбрал второй вариант - я создал группу, но как мне дать гранты, например, на CONNECT TO DB? мне предлагают только раздавать права на роль
Кто или что предлагают?

GRANT CONNECT ON DATABASE TO GROUP <MYGROUP>
11 янв 19, 14:46    [21782888]     Ответить | Цитировать Сообщить модератору
 Re: Новый пользователь на сервер db2  [new]
AVRomanenko
Member

Откуда:
Сообщений: 42
Mark Barinstein,
гуглил...и там не нашел подобного, только SQL-команды для новой ROLE, но я попробовал, и Ваш скрипт отлично работает...а еще, можно узнать, как смотреть экземпляр db2? допустим, здесь оказался db2inst1, а в др месте может быть другой, например?
11 янв 19, 15:33    [21782959]     Ответить | Цитировать Сообщить модератору
 Re: Новый пользователь на сервер db2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4788
AVRomanenko
можно узнать, как смотреть экземпляр db2? допустим, здесь оказался db2inst1, а в др месте может быть другой, например?

На сервере может быть установлено несколько кодов db2, каждый из них может управлять несколькими экземплярами.
Вы можете получить все установленные коды с помощью вызова команды ниже, которая, как правило, является ссылкой на утилиту db2ls из-под какого-нибудь из этих кодов.
/usr/local/bin/db2ls

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

Получаете список экземпляров с информацией о том, каким кодом DB2 каждый управляется.
Для того, чтоб начать работать с нужным экземпляром (скажем, db2inst), выполняете в сессии 2 команды (1-ю можно пропустить, если в этой сессии еще ни с одним экземпляром не работали):
db2 terminate
. ~db2inst/sqllib/db2profile
и можете начинать работать.
11 янв 19, 15:54    [21782980]     Ответить | Цитировать Сообщить модератору
 Re: Новый пользователь на сервер db2  [new]
AVRomanenko
Member

Откуда:
Сообщений: 42
Mark Barinstein, большое спасибо Вам! Очень выручили меня.
14 янв 19, 12:33    [21784626]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить