Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Подскажите пожалуйста.
Есть собственная база данных с кучей пользователей, из которых несколько определены как db_owner, но не входят в sysadmins.
Хочу дать этим пользователям возможность анализа паролей в sys.syslogins для 2000 и 2005 серверов.
grant select on master..syslogins to public
не хочется,
а
grant select on master..syslogins to db_owner
не можется.

Как правильно предоставить грант этим пользователям?
15 июн 09, 16:40    [7301254]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Glory
Member

Откуда:
Сообщений: 104760
grant select вообще-то делается пользователям текущей базы
15 июн 09, 16:44    [7301280]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Glory
grant select вообще-то делается пользователям текущей базы

Ну да, правильно.
Т.е. я коннекчусь естесственно к мастеру и под sa.
А как при этом вычитать всех db_owner из другой несистемной базы?
15 июн 09, 16:50    [7301311]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor2222
Glory
grant select вообще-то делается пользователям текущей базы

Ну да, правильно.
Т.е. я коннекчусь естесственно к мастеру и под sa.

Чего правильно то ? Почему тогда в тексте команды фигурирует имя базы ?
15 июн 09, 16:52    [7301321]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Glory
Чего правильно то ? Почему тогда в тексте команды фигурирует имя базы ?

С именем базы
use master
go
grant select on master..syslogins to public

тоже работает. По крайней мере в 2000.
Но вопрос как сделать нечто:
use master
go
grant select on syslogins to [my_base].[db_owner]
15 июн 09, 16:55    [7301339]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor2222
Glory
Чего правильно то ? Почему тогда в тексте команды фигурирует имя базы ?

С именем базы
use master
go
grant select on master..syslogins to public

тоже работает. По крайней мере в 2000.
Но вопрос как сделать нечто:
use master
go
grant select on syslogins to [my_base].[db_owner]


Пользователи и роли базы имеют права только внутри своей базы. Это принцип модели безопасности в MSSQL.
15 июн 09, 16:58    [7301348]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
а причем тут db_owner?
db_owner относится к определенной базе. и не относится к master. привязывайте к конкретным пользователям права и будет вам щастье.

для спящего время бодрствования равносильно сну
15 июн 09, 16:59    [7301355]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Алексей2003
а причем тут db_owner?
db_owner относится к определенной базе. и не относится к master. привязывайте к конкретным пользователям права и будет вам щастье.

для спящего время бодрствования равносильно сну

Хорошо, а как из мастера вычитать имена пользователей другой базы данных, которые имеют роль db_owner?
15 июн 09, 17:01    [7301373]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
так у других пользователей и не будет прав на master, если это не указать явно.
и не надо grant на public делать.

для спящего время бодрствования равносильно сну
15 июн 09, 17:04    [7301389]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor2222
Алексей2003
а причем тут db_owner?
db_owner относится к определенной базе. и не относится к master. привязывайте к конкретным пользователям права и будет вам щастье.

для спящего время бодрствования равносильно сну

Хорошо, а как из мастера вычитать имена пользователей другой базы данных, которые имеют роль db_owner?

Для обращения к объектам любой базы текущий логин(!) должен мапиться в какого-то пользователя базы. И через него он получит права на объекты этой базы
15 июн 09, 17:04    [7301395]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Glory
Для обращения к объектам любой базы текущий логин(!) должен мапиться в какого-то пользователя базы. И через него он получит права на объекты этой базы

Ну уже понятней.
Тогда вопрос такой.
Есть у меня user dbo в мастере и есть соответственно юзер dbo в моей базе.
А также есть юзер vasya, который может быть ассоциирован с каким то пользователем в мастере, а может и не ассоциирован (базу приаттачили руками). Получается мне нужно дать права пользователям мастера, но как узнать с кем они ассоциированы в моей базе, и являются ли эти пользователи db_owner-ами в моей базе? Или это нереально?
15 июн 09, 17:22    [7301533]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor2222

А также есть юзер vasya, который может быть ассоциирован с каким то пользователем в мастере, а может и не ассоциирован (базу приаттачили руками). Получается мне нужно дать права пользователям мастера, но как узнать с кем они ассоциированы в моей базе, и являются ли эти пользователи db_owner-ами в моей базе? Или это нереально?

Еще раз
Юзер, он же пользователь, - это объект базы. И права он имеет только внутри базы. И он не может быть ассоциирован с другим пользователем базы
15 июн 09, 17:24    [7301551]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
блин, столько вопросов, а решается все всего несколько кликами.
открыть USER у базы какойнибудь. и открыть LOGIN сервера. пощелкать по закладкам. и ВСЕ БУДЕТ ЯСНО.

для спящего время бодрствования равносильно сну
15 июн 09, 17:24    [7301553]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Glory
igor2222

А также есть юзер vasya, который может быть ассоциирован с каким то пользователем в мастере, а может и не ассоциирован (базу приаттачили руками). Получается мне нужно дать права пользователям мастера, но как узнать с кем они ассоциированы в моей базе, и являются ли эти пользователи db_owner-ами в моей базе? Или это нереально?

Еще раз
Юзер, он же пользователь, - это объект базы. И права он имеет только внутри базы. И он не может быть ассоциирован с другим пользователем базы

А пользователю моей базы можно дать право на селект системной таблицы бд мастер?
Есть в моей базе пользователь igor2222. Я его вижу в select * from master..syslogins как пользователя бд мастер. Пытаюсь ему под са:
use master 
go
grant select on syslogins to [igor2222]
И получаю
Query OK, -1 rows affected (78 ms)
There is no such user or group 'igor2222'.
15 июн 09, 17:41    [7301659]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor2222

А пользователю моей базы можно дать право на селект системной таблицы бд мастер?

Вы ответы читали вообще ?
15 июн 09, 17:44    [7301683]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
с чукчей писателем, право, очень сложно общаться.
уважаемый, откройте ПОЛЬЗОВАТЕЛЯ у базы и ЛОГИН у сервера и вам ВСЕ СТАНЕТ ЯСНО.
и применяйте терминологию SQL Server, а не ту, что вы вычитали в своем дневнике.

для спящего время бодрствования равносильно сну
15 июн 09, 17:49    [7301724]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Glory
Вы ответы читали вообще ?

Я запутался уже!
Из Ваших слов получается, что если я создаю пользователя в моей базе данных, соответственно для него создается логин, то получается при этом этот пользователь - не объект базы данных мастер и для него я не могу дать грант ни для одного объекта мастера.
Как создать пользователя так, что я мог дать ему право делать выборку из системной таблицы? Только дав ему роль sysadmins либо определив таблице грант для public?
15 июн 09, 17:53    [7301757]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Алексей2003
с чукчей писателем, право, очень сложно общаться.
уважаемый, откройте ПОЛЬЗОВАТЕЛЯ у базы и ЛОГИН у сервера и вам ВСЕ СТАНЕТ ЯСНО.
и применяйте терминологию SQL Server, а не ту, что вы вычитали в своем дневнике.

для спящего время бодрствования равносильно сну

Мне не ясно.
Открыл EMS, приконнектился к своей базе данных, зашел в Users, открыл пользователя igor2222, логин у этого пользователя ТОЖЕ igor2222. Но грант на селект системной таблицы этому пользователю дать нельзя. Что я вычитал в своем дневнике?
15 июн 09, 17:56    [7301796]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
если ЛОГИН существует на сервере, тогда:
1. создать пользователя у базы master, к которому маппите ЛОГИН СЕРВЕРА. у вас появляется ПОЛЬЗОВАТЕЛЬ БАЗЫ. пользователь "testuser"
2. для этого пользователя выполняете
GRANT SELECT
ON syslogins
TO testuser

если ЛОГИНА СЕРВЕРА не существует, тогда создаете ЛОГИН СЕРВЕРА, и потом первые 2 пункта.

для спящего время бодрствования равносильно сну
15 июн 09, 18:00    [7301838]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
нужно не к СВОЕЙ БАЗЕ коннектиться. а к базе MASTER. и там искать ПОЛЬЗОВАТЕЛЯ БАЗЫ igor2222 который замаплен к ЛОГИНУ СЕРВЕРА igor2222.

для спящего время бодрствования равносильно сну
15 июн 09, 18:03    [7301859]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Алексей2003
если ЛОГИН существует на сервере, тогда:
1. создать пользователя у базы master, к которому маппите ЛОГИН СЕРВЕРА. у вас появляется ПОЛЬЗОВАТЕЛЬ БАЗЫ. пользователь "testuser"
2. для этого пользователя выполняете
GRANT SELECT
ON syslogins
TO testuser

если ЛОГИНА СЕРВЕРА не существует, тогда создаете ЛОГИН СЕРВЕРА, и потом первые 2 пункта.

для спящего время бодрствования равносильно сну

Так я ж с этого и начинал.
Полный вопрос с правильными терминами звучит так:
Как создать пользователя бд мастер, к которому примапить логин сервера, который связан с пользователем моей базы, у которого есть роль db_owner ?
15 июн 09, 18:11    [7301922]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
из вопроса, вот это:
автор
который связан с пользователем моей базы, у которого есть роль db_owner

выкидываем. потому как это НИКАК не связано с базой master.
и плюсик вкладку master. кликаем по Users. выбираем добавить пользователя. в открывшемся окне в поле login выбираем igor2222 и дальше играйтесь с правами как надо.
и так для КАЖДОГО ЛОГИНА.

для спящего время бодрствования равносильно сну
15 июн 09, 18:13    [7301939]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Алексей2003
из вопроса, вот это:
автор
который связан с пользователем моей базы, у которого есть роль db_owner

выкидываем. потому как это НИКАК не связано с базой master.
и плюсик вкладку master. кликаем по Users. выбираем добавить пользователя. в открывшемся окне в поле login выбираем igor2222 и дальше играйтесь с правами как надо.
и так для КАЖДОГО ЛОГИНА.

для спящего время бодрствования равносильно сну

Это всё замечательно, но это нужно сделать скриптом.
15 июн 09, 18:23    [7302003]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Всем спасибо, отловил профайлером.
15 июн 09, 18:37    [7302064]     Ответить | Цитировать Сообщить модератору
 Re: Вычитать пароли  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
1. включаете профайлер.
2. создаете остальное вручную.
3. просматриваете скрипты.

для спящего время бодрствования равносильно сну
15 июн 09, 18:39    [7302070]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить