sp_enum_login_for_proxy (Transact-SQL)

适用范围:SQL Server

列出安全主体服务器和代理服务器之间的关联。

Transact-SQL 语法约定

语法

sp_enum_login_for_proxy
    [ [ @name = ] N'name' ]
    [ , [ @proxy_id = ] proxy_id ]
    [ , [ @proxy_name = ] N'proxy_name' ]
[ ; ]

参数

[ @name = ] N'name'

要列出其代理的 SQL Server 主体、登录名、服务器角色或 msdb 数据库角色的名称。 @name为 nvarchar(256),默认值为 NULL.

[ @proxy_id = ] proxy_id

要列出信息的代理的代理标识号。 @proxy_id为 int,默认值为 NULL.

可以指定@proxy_id@proxy_name

[ @proxy_name = ] N'proxy_name'

要列出信息的代理的名称。 @proxy_name为 sysname,默认值为 NULL.

可以指定@proxy_id@proxy_name

返回代码值

0(成功)或 1(失败)。

结果集

列名称 数据类型 说明
proxy_id int 代理服务器标识号。
proxy_name nvarchar(128) 代理服务器的名称。
flags int 安全主体服务器的类型。

0 = SQL Server 登录名
1 = 固定系统角色
2 = 数据库角色 msdb
name nvarchar(128) 关联的安全主体服务器的名称。
sid varbinary(85) 关联的安全主体的安全标识符(SID)。
principal_id int 关联的安全主体的主体 ID。

注解

如果未提供任何参数, sp_enum_login_for_proxy 则列出有关每个代理实例中所有登录名的信息。

提供@proxy_idproxy_name时,sp_enum_login_for_proxy列出有权访问代理的登录名。 提供@name时,sp_enum_login_for_proxy列出登录名有权访问的代理。

当同时提供代理信息和登录名时,如果指定的登录有权访问指定的代理,则结果集将返回一行。

此存储过程位于 msdb.

权限

此过程的执行权限默认为 sysadmin 固定服务器角色的成员

示例

A. 列出所有关联

以下示例列出了在当前实例的登录和代理之间建立的所有权限。

USE msdb;
GO

EXEC dbo.sp_enum_login_for_proxy;
GO

B. 列出特定登录名的代理

以下示例列出了登录 terrid 有权访问的代理。

USE msdb;
GO

EXEC dbo.sp_enum_login_for_proxy @name = 'terrid';
GO