Dav*_*ner 4 sql-server permissions synonym
我从BOL看到你可以将权限应用于T-SQL同义词,但是在使用同义词时,如果你已经对基础对象拥有GRANTed权限,那么我不清楚你何时需要这样做.
例如.如果我在数据库A中有一个同义词指向数据库B中的表FRED,那么只要用户Joe在[Fred]上被授予SELECT.[B]那么Joe就可以执行SELECT*FROM [Fred].[ B].
以下权限声明仅与同义词相关联,而不与基础对象相关联:(然后提及GRANT,REVOKE; DENY)
之后,所有权链接适用.
当通过链访问对象时,SQL Server首先将对象的所有者与调用对象的所有者进行比较.这是链中的前一个链接.如果两个对象具有相同的所有者,则不会评估对引用对象的权限.
CREATE SYNONYM dbo.FooBar FOR dbo.MyBaseProc
GO
GRANT EXECUTE ON dbo.FooBar TO MyUser
GO
REVOKE EXECUTE ON dbo.MyBaseProc TO MyUser
GO
EXEC AS USER = 'MyUser'
GO
PRINT '1'
EXEC dbo.MyBaseProc --fail
GO
PRINT '2'
EXEC dbo.bob --pass
GO
REVERT
GO
DENY EXECUTE ON dbo.MyBaseProc TO MyUser
GO
PRINT '3'
EXEC AS USER = 'MyUser'
GO
EXEC dbo.bob --pass, 'coz DENY aint checked...
GO
REVERT
GO
Run Code Online (Sandbox Code Playgroud)
编辑:我希望我已经回答了你的问题......
归档时间: |
|
查看次数: |
11144 次 |
最近记录: |