我创建了以下登录/用户
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能够直接选择表格)?