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

Откуда: Волгодонск
Сообщений: 1344
Здраствуйте,

На одном и том же сервере есть две базы, пусть будут 'MyBase' и 'NotMyBase'
Я запускаю процедуру MyBase.dbo.MyProc в которой анализируется есть ли у меня разрешение на чтение из таблицы NotMyBase.dbo.NotMyTable

Если мне нужно узнать разрешение на чтение из таблицы MyBase.dbo.MyTable я запускаю код
IF PERMISSIONS(OBJECT_ID('dbo.MyTable'))&1=1
   PRINT 'Yes'
ELSE
   PRINT 'No'
который мне верно показывает есть ли у меня разрешение или нет
Но когда я пытаюсь узнать разрешение на чтение из таблицы NotMyBase.dbo.NotMyTable я запускаю код
IF PERMISSIONS(OBJECT_ID('NotMyBase.dbo.NotMyTable'))&1=1
   PRINT 'Yes'
ELSE
   PRINT 'No'
И он ВСЕГДА выводит "NO"...
Подскажите, как можно проверить разрешение (на чтение) на обьект из другой базы?
23 июн 11, 16:08    [10863142]     Ответить | Цитировать Сообщить модератору
 Re: Резрешение на таблицу в другой базе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
А как функция PERMISSIONS должна догадаться, что ей передают object_id от объекта в какой-то другой базе данных?
23 июн 11, 16:14    [10863224]     Ответить | Цитировать Сообщить модератору
 Re: Резрешение на таблицу в другой базе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
И вообще:

PERMISSIONS ( ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_6tsql/html/81625a56-b160-4424-91c5-1ce8b259a8e6.htm )
objectid
Is the ID of a securable. If objectid is not specified, the bitmap value contains statement permissions for the current user; otherwise, the bitmap contains permissions on the securable for the current user. The securable specified must be in the current database. Use the OBJECT_ID function to determine the objectid value.
23 июн 11, 16:15    [10863243]     Ответить | Цитировать Сообщить модератору
 Re: Резрешение на таблицу в другой базе  [new]
BrykAlien
Member [заблокирован]

Откуда: Волгодонск
Сообщений: 1344
Хорошо, можно ли как-нибудь проверить разрешение (на чтение) на обьект из другой базы?
23 июн 11, 16:24    [10863350]     Ответить | Цитировать Сообщить модератору
 Re: Резрешение на таблицу в другой базе  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
use MyBase
go
declare @p int
execute NotMyBase..sp_executesql N'select @p = permissions(object_id(N''dbo.NotMyTable'', N''U''))', N'@p int output', @p = @p output
select @p
23 июн 11, 17:02    [10863799]     Ответить | Цитировать Сообщить модератору
 Re: Резрешение на таблицу в другой базе  [new]
BrykAlien
Member [заблокирован]

Откуда: Волгодонск
Сообщений: 1344
invm,

Суперр! Респект и уважуха! +)
23 июн 11, 17:10    [10863865]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить