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

Откуда:
Сообщений: 25
MS SQL Server 2000 SP4
Есть приложение к которому коннектится пользователь с правами
public (ну лишь бы коннект сам поднял с базой), далее в базе
прописана роль приложения с правами db_owner, которая собственно
после удачного коннекта пользователя активируется.
Далее необходимо базу перевести в SINGLE_USER для обслуживания
(применение скриптов с обновлением). Но сервер говорит, что прав
недостаточно, при этом дропать dbo таблицу разрешает, в чем логика?

Вот пример как быстро смоделировать ситуацию при наличии базы pubs:

Запускаем SQL Query Analyzer и коннектимся с правами администратора:

-- Создаем логин для pubs с правами public
EXEC sp_addlogin 'pubs_login', Null, 'pubs', 'russian'

-- Переходим в pubs
USE pubs

-- Создаем пользователя pubs_user в pubs с логином pubs_login
EXEC sp_grantdbaccess 'pubs_login', 'pubs_user'

-- Создаем роль приложения pubs_approle с паролем any_password
EXEC sp_addapprole 'pubs_approle', 'any_password'

-- Даем роли приложения pubs_approle права db_owner
EXEC sp_addrolemember 'db_owner', 'pubs_approle'

Закрываем коннект и коннектимся под pubs_login с пустым паролем.

-- Активируем роль приложения для SQL Query Analyzer
EXEC sp_setapprole 'pubs_approle', 'any_password'

-- Переводим базу в SINGLE_USER
ALTER DATABASE pubs SET SINGLE_USER WITH NO_WAIT

А на выходе сервер сообщает:

Server: Msg 5011, Level 14, State 2, Line 1
User does not have permission to alter database 'pubs'.
Server: Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.

Иду читать хелп по ALTER DATABASE и вижу следующее:

Permissions

ALTER DATABASE permissions default to members of the sysadmin and dbcreator fixed server roles,
and to members of the db_owner fixed database roles. These permissions are not transferable.

Участником db_owner является. Тогда почему прав недостаточно?
В последнем предложении написано, что эти права не передаются, но как это относится к описанной
мной ситуации.

Заранее благодарен всем откликнувшимся.
1 июн 09, 13:14    [7251072]     Ответить | Цитировать Сообщить модератору
 Re: Application role с правами db_owner  [new]
Glory
Member

Откуда:
Сообщений: 104760
User does not have permission to alter database 'pubs'. А не роль
1 июн 09, 13:21    [7251108]     Ответить | Цитировать Сообщить модератору
 Re: Application role с правами db_owner  [new]
FunCode
Member

Откуда:
Сообщений: 25
Glory, так User и удалять ничего не может (но почему-то в примере может)
потому как у User public права, но в момент активации роли приложения,
права пользователя в текущей сессии не рассматриваются вообще,
все операции основываются на правах роли приложения.
Если необходимо приведу пример из мануала...
1 июн 09, 14:14    [7251403]     Ответить | Цитировать Сообщить модератору
 Re: Application role с правами db_owner  [new]
Glory
Member

Откуда:
Сообщений: 104760
FunCode
Glory, так User и удалять ничего не может (но почему-то в примере может)
потому как у User public права, но в момент активации роли приложения,
права пользователя в текущей сессии не рассматриваются вообще,
все операции основываются на правах роли приложения.
Если необходимо приведу пример из мануала...

Стало быть на ALTER DATABASE нужны явные права, а не наследуемые
1 июн 09, 14:21    [7251453]     Ответить | Цитировать Сообщить модератору
 Re: Application role с правами db_owner  [new]
FunCode
Member

Откуда:
Сообщений: 25
ну похоже что все-таки последнее предложение по поводу not transferable
и есть упоминание об этом ограничении, но логики не вижу для чего это сделано, потому как
объекты базы данных могу удалять, изменять, создавать и никаких ограничений нет ...
1 июн 09, 14:25    [7251480]     Ответить | Цитировать Сообщить модератору
 Re: Application role с правами db_owner  [new]
FunCode
Member

Откуда:
Сообщений: 25
может кто еще что-то знает по этой теме - было бы очень интересно
2 июн 09, 00:02    [7253838]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить