将角色用户列为标准用户
List role users as a standard user
由于权限不足,普通用户无法列出属于特定角色的数据库用户。
Execute as
似乎不起作用(在存储过程中)。
仅列出 returns 当前用户。
我的问题:
如何让普通用户(被授予对相关存储过程的执行权限)获取所有角色用户的列表?
如何在存储过程中封装高权限功能:
CREATE PROCEDURE dbo.GetRoleList
WITH EXECUTE AS OWNER
AS
BEGIN
SELECT ...
END
GO
当然,您应该使用有权列出角色用户的用户来创建过程。当普通用户执行该过程时,将使用所有者的权限(因此允许执行 "elevated" 查询)。
查看 this post 了解更多详情。
由于权限不足,普通用户无法列出属于特定角色的数据库用户。
Execute as
似乎不起作用(在存储过程中)。
仅列出 returns 当前用户。
我的问题:
如何让普通用户(被授予对相关存储过程的执行权限)获取所有角色用户的列表?
如何在存储过程中封装高权限功能:
CREATE PROCEDURE dbo.GetRoleList
WITH EXECUTE AS OWNER
AS
BEGIN
SELECT ...
END
GO
当然,您应该使用有权列出角色用户的用户来创建过程。当普通用户执行该过程时,将使用所有者的权限(因此允许执行 "elevated" 查询)。
查看 this post 了解更多详情。