我需要将查询作为"用户"运行,该查询是表中的记录,并根据该用户的记录值获得了权限。
我有一个带有Tusers表的数据库,例如:
ID Username Email Role
1 Pieman mail.com Admin
2 Cakedude mail.co.uk Receptionist
3 Muffin gh.com Other
我只需要拥有它的"用户"/记录" admin"的"角色"可以查看和编辑表,并且"接待员"查看它等等。
我知道并使用赠款作为权限,但不知道如何根据表记录作为用户运行查询,并且仅在用户的角色为" admin"
时才获得许可所以如果我有:
USE DB1;
GRANT SELECT ON OBJECT::tUsers TO Admins;
GO
SELECT * FROM tUsers
我如何将其作为用ID 1说的Tuser表示,如果用户的角色=" admin"
我敢肯定我已经看过这项工作了。
我很新,仍然学习正确的术语,因此,如果这是一个重复的问题,或者本质上只是描述了SQL功能。
我认为您无法在自己的用户表中授予或撤销权限。但是,您当然可以根据自己的用户表限制查询。
一种解决方案是在您的应用程序中执行此操作。在为他/她做任何事情之前,验证者的权限。
另一个解决方案是使用将用户ID作为参数的存储过程,并在中心位置为您进行检查。
第三个是对用户参数化视图,您可以在其中过滤一个用户无法访问的条目。
还有其他解决方案,但基本想法是您需要以某种方式检查权限,而是要求DBM服务器为您执行此操作。