使用动态sql时,SELECT权限被拒绝了吗?

时间:2017-01-24 23:49:35

标签: sql-server permissions dynamic-sql

我创建了以下登录/用户

user master
create login user1 with password=N'....', default_database=[TestDB], check_expiration=off, check_policy=on;
use TestDB
create user user1 for login user1

create role testRole;
grant exec to testRole;

然后我创建了一个测试过程并使用新的登录

运行它
create proc test 
as 
select top 10 * from table1;

exec('exec test') as login = 'user1'

由于没有权限,exec返回的行甚至exec('select top 10 * from table1') as login = user1失败。

然后我使用动态Sql创建了另一个proc。

create proc test1 
as 
exec('select top 10 * from table1');

exec('exec test1') as login = 'user1'

现在因缺乏许可而失败。如果test1能够在没有明确授予桌面选择权限的情况下user1运行{我不希望用户1能够直接选择表格)?

0 个答案:

没有答案