将角色用户列为标准用户

时间:2017-12-29 14:06:03

标签: sql-server database-security

由于权限不足,普通用户无法列出属于某个角色的数据库用户。

Execute as似乎不起作用(在存储过程中)。

列表仅返回当前用户。

我的问题:

如何让普通用户(被授予对相关存储过程的执行权限)获取所有角色用户的列表?

1 个答案:

答案 0 :(得分:2)

如何在存储过程中封装高权限功能:

CREATE PROCEDURE dbo.GetRoleList
WITH EXECUTE AS OWNER
AS
BEGIN
   SELECT ...
END
GO

当然,您应该创建具有列出角色用户权限的用户的过程。当常规用户执行该过程时,将使用所有者的权限(从而允许执行“提升的”查询)。

查看this post了解详情。