SETUSER [ 'username' [ WITH NORESET ] ] 参数 'username'是当前数据库中所模拟的 SQL Server 或 Microsoft Windows NT® 用户名。如果未指定 username,将重新建立模拟用户的系统管理员的原始标识。WITH NORESET指定后续 SETUSER 语句(未指定 username)不重置为系统管理员。
下例显示系统管理员如何采用其他用户的标识。用户 mary 创建了一个名为 computer_types 的表。系统管理员使用 SETUSER 模拟用户 mary 授予用户 joe 访问 computer_types 表的权限。SETUSER 'mary' go GRANT SELECT ON computer_types TO joe go SETUSER
select b.name as loginname from master..sysusers a,master..syslogins b where a.sid = b.sid and a.name = CURRENT_USER /*sa*/
sid这个字段什么含义啊?
登录名跟用户名还是有区别吧,那不然要sysusers和syslogins两张表干什么?
SELECT SYSTEM_USER AS 'Login Name ', USER AS 'User Name ' 这样行不?
还有个系统存储过程应该也可以,sp_helpuser
SELECT SYSTEM_USER SETUSER [ 'username' [ WITH NORESET ] ]
'username'是当前数据库中所模拟的 SQL Server 或 Microsoft Windows NT® 用户名。如果未指定 username,将重新建立模拟用户的系统管理员的原始标识。WITH NORESET指定后续 SETUSER 语句(未指定 username)不重置为系统管理员。
go
GRANT SELECT ON computer_types TO joe
go
SETUSER
select b.name as loginname
from master..sysusers a,master..syslogins b
where a.sid = b.sid and a.name = CURRENT_USER
/*sa*/
sid这个字段什么含义啊?
登录名跟用户名还是有区别吧,那不然要sysusers和syslogins两张表干什么?
SELECT SYSTEM_USER AS 'Login Name ', USER AS 'User Name ' 这样行不?
SETUSER [ 'username' [ WITH NORESET ] ]