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

Откуда:
Сообщений: 14
MSSQL 2005

в базе скриптами проводилось объединение разрешений из нескольких старых ролей (назовем их 'old_role%') в одну новую ('new_role'), после чего старые роли были удалены. В результате у пользователей, которые входят в базу не как непосредственные члены новой роли, а как члены других ролей (групп), входящих теперь в эту новую роль, возникает ошибка поиска старой роли:

Cannot find the user 'old_role_n', because it does not exist or you do not have permission.

Ошибка возникает при попытке обращения к процедурам, доступ к которым передан из старой роли в новую.

Выбор членов старых ролей для переброски в новую делался так:

select m.name, r.name
from sys.database_role_members x
inner join sys.database_principals r on x.role_principal_id = r.principal_id
inner join sys.database_principals m on x.member_principal_id = m.principal_id
where r.name like 'old_role%'

Выбранные добавлялись в новую роль процедурой:
sp_addrolemember

Потом они удалялись из старой роли процедурой:
sp_droprolemember

Далее старая роль удалялась процедурой:
sp_droprole
10 окт 13, 08:56    [14948403]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
Glory
Member

Откуда:
Сообщений: 104751
petrovna
В результате у пользователей, которые входят в базу не как непосредственные члены новой роли, а как члены других ролей (групп), входящих теперь в эту новую роль, возникает ошибка поиска старой роли:

Cannot find the user 'old_role_n', because it does not exist or you do not have permission.

И когда же возникает эта ошибка ?
10 окт 13, 09:32    [14948556]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
petrovna
Member

Откуда:
Сообщений: 14
Glory,
при попытке обращения к процедурам, доступ к которым передан из старой роли в новую.

если не найдется простого решения, будет попытка перезапустить сервер )
10 окт 13, 09:35    [14948574]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
BuKTaP
Member

Откуда:
Сообщений: 132
petrovna
если не найдется простого решения, будет попытка перезапустить сервер )


Это угроза? :)
10 окт 13, 10:35    [14948883]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
Гость333
Member

Откуда:
Сообщений: 3683
petrovna
если не найдется простого решения, будет попытка перезапустить сервер )

Лучше сразу переустановить. Вместе с Windows.

Вы, кстати, так и не задали никакого вопроса.
10 окт 13, 10:37    [14948901]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
Glory
Member

Откуда:
Сообщений: 104751
petrovna
при попытке обращения к процедурам, доступ к которым передан из старой роли в новую.

Не совсем понятно
Т.е. пользователь базы, невходящий в пользовательские роли, но с явным разрешением на запуск процедуры не получает ошибку ?
А пользователь базы, входящий в роль и имеющий права на запуск только через членство в этой роли поучает ошибку ?
10 окт 13, 10:41    [14948930]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
petrovna
Member

Откуда:
Сообщений: 14
Glory
Не совсем понятно
Т.е. пользователь базы, невходящий в пользовательские роли, но с явным разрешением на запуск процедуры не получает ошибку ?
А пользователь базы, входящий в роль и имеющий права на запуск только через членство в этой роли поучает ошибку ?

Ошибки не получает пользователь, входящий в роль new_role
Ошибку получает пользователь, входящий в роль xxx_role, которая входит в роль new_role
10 окт 13, 10:51    [14949010]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
Glory
Member

Откуда:
Сообщений: 104751
petrovna
Ошибку получает пользователь, входящий в роль xxx_role, которая входит в роль new_role

И у какой роли права на запуск процедуры ?
10 окт 13, 10:53    [14949023]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
Glory
Member

Откуда:
Сообщений: 104751
И какое мнение насчет прав пользователя на эту процедуру имеет fn_my_permissions
10 окт 13, 10:55    [14949041]     Ответить | Цитировать Сообщить модератору
 Re: Сервер ищет роль, которая была удалена  [new]
petrovna
Member

Откуда:
Сообщений: 14
права на запуск присвоились как и запланировано роли new_role
даже те пользователи, которые получают эту ошибку, получают и доступ к процедуре.
Т.е. сервер возвращает странную ошибку, но процедуру выполняет
10 окт 13, 11:10    [14949142]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить