Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Telum
Member

Откуда: Краснодар
Сообщений: 127
Коллеги, подскажите, есть ли быстрый способ добавления пользователя (аутентификация SQL Server)с ролью public на сервер и ролью readonly на следующие объекты (БД, функции процедуры).
Про sp_msforeachdb читал, в принципе подходит, но при добавлении новой БД, придется вручную заносить пользователя и давать ему права, либо делать это скриптом. Проблема в том, что сервер не мой и при появлении новых БД на сервере, я буду месяцами выпрашивать доступ у администраторов, которые будут ссылаться на занятость и т.д.

Скрипт на добавление пользователя в БД:
use DataBase1
GO
CREATE USER readonly FOR LOGIN readonly;
go
exec sp_addrolemember 'db_datareader',readonly

use DataBase2
GO
CREATE USER readonly FOR LOGIN readonly;
go
exec sp_addrolemember 'db_datareader',readonly

...

use DataBaseN
GO
CREATE USER readonly FOR LOGIN readonly;
go
exec sp_addrolemember 'db_datareader',readonly
---telum---
13 янв 14, 11:56    [15406960]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Telum,

Создать ddl триггер, которы при появлении новой базы будет туда прописывать вашего юзверя.
13 янв 14, 12:18    [15407110]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Telum
Member

Откуда: Краснодар
Сообщений: 127
Интересный момент:
После выполнения скрипта:

Declare @command varchar(1000)
set @command='USE [?] CREATE USER readonly FOR LOGIN readonly'
exec sp_MSforeachdb @command
set @command='USE [?] exec sp_addrolemember db_datareader,readonly'
exec sp_MSforeachdb @command

В каждой новой БД пользователь стал появляться автоматически. Осталось решить проблему с функциями и процедурами.
13 янв 14, 15:03    [15408412]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Telum
В каждой новой БД пользователь стал появляться автоматически.

Потому что каждая новая база создается на основе базы model
13 янв 14, 15:05    [15408419]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Telum
Member

Откуда: Краснодар
Сообщений: 127
Glory
Telum
В каждой новой БД пользователь стал появляться автоматически.

Потому что каждая новая база создается на основе базы model

Спасибо, выпустил из головы этот момент. Пока не решил проблему с функциями и процедурами.
13 янв 14, 15:23    [15408554]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Telum
Пока не решил проблему с функциями и процедурами.

Потому что для функци и процедур нет прав вида "читать"
Для них есть права вида "выполнять"
13 янв 14, 15:26    [15408578]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Telum
Member

Откуда: Краснодар
Сообщений: 127
Glory
Telum
Пока не решил проблему с функциями и процедурами.

Потому что для функци и процедур нет прав вида "читать"
Для них есть права вида "выполнять"

Как же нет?! А "Просмотр определения" (во вложении скрин)? С указанными на скрине правами прочитать процедуру можно, а выполнить нельзя (по крайней мере 2008-2012 MS SQL Server).

К сообщению приложен файл. Размер - 66Kb
13 янв 14, 16:25    [15409080]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Telum
С указанными на скрине правами прочитать процедуру можно, а выполнить нельзя

Ну если для вас "читать" - это читать глазами, тогда ой
13 янв 14, 16:29    [15409111]     Ответить | Цитировать Сообщить модератору
 Re: Создание readonly пользователя для всех БД а так же функций и процедур SQL Server 2008  [new]
Telum
Member

Откуда: Краснодар
Сообщений: 127
Glory
Telum
С указанными на скрине правами прочитать процедуру можно, а выполнить нельзя

Ну если для вас "читать" - это читать глазами, тогда ой

Именно просмотр текста и имелся ввиду, извиняюсь за то, что ввел в заблуждение.
13 янв 14, 16:34    [15409145]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить