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

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

create table dbo.mytable (id int identity, val int)

create PROCEDURE dbo.test_proc
AS
BEGIN
   insert into mytable(val) values (ident_current('mytable'))
   select scope_identity() as my_scope_identity
   select * from mytable
END

create role test_role

grant execute on test_proc to test_role

grant test_role to test_user

Логинимся как test_user
exec dbo.test_proc
my_scope_identity
-----------
1

id val
--------
1 null

В общем результат предсказуем
BOL http://msdn.microsoft.com/ru-ru/library/ms175098.aspx
Возвращает значение NULL в случае ошибки или отсутствия у участника разрешения на просмотр объекта.

Вопрос:
Почему не работает ownership chain?
Как это побороть кроме лобового?
grant select (id) on mytable to test_role
31 июл 09, 02:47    [7482281]     Ответить | Цитировать Сообщить модератору
 Re: IDENT_CURRENT и права  [new]
SERG1257
Member

Откуда:
Сообщений: 2697
Ну и конечно
select @@version
-----------------
Microsoft SQL Server 2005 - 9.00.3310.00 (X64) Dec 19 2008 00:43:18 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
31 июл 09, 02:49    [7482284]     Ответить | Цитировать Сообщить модератору
 Re: IDENT_CURRENT и права  [new]
SERG1257
Member

Откуда:
Сообщений: 2697
Еще одно решение откопал
GRANT VIEW DEFINITION ON OBJECT :: mytable TO test_role
31 июл 09, 02:54    [7482287]     Ответить | Цитировать Сообщить модератору
 Re: IDENT_CURRENT и права  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
EXECUTE AS не помогает?
31 июл 09, 09:23    [7482614]     Ответить | Цитировать Сообщить модератору
 Re: IDENT_CURRENT и права  [new]
SERG1257
Member

Откуда:
Сообщений: 2697
автор
EXECUTE AS не помогает?

То бишь вы предлагаете создать левого юзера, дать ему всякие разные права заблокировать ему вход, и выполнять процедуру от имени этого юзера.
А почему dbo не может быть таким юзером?
31 июл 09, 19:01    [7486414]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить