Jus*_*lle 8 sql-server-2005 sql-server
当特殊guest用户被孤立(未链接到任何登录)时,可以做什么(如果有的话)?
对于我的一个数据库 (SQL Server 2005),执行以下命令将来宾用户列为孤立用户。
exec sp_change_users_login 'report'
Run Code Online (Sandbox Code Playgroud)
结果:
UserName UserSID
guest 0x3C2E66759FFBC14F84127D6795C27FD3
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用该过程修复来宾用户,则会得到以下信息:
exec sp_change_users_login 'update_one', 'guest', 'guest'
Run Code Online (Sandbox Code Playgroud)
终止此程序。'guest' 是此过程中登录名参数的禁止值。
如果我尝试删除用户,我会得到:
用户 'guest' 不能删除,只能禁用。
select * from sys.database_principals where name = 'guest'
Run Code Online (Sandbox Code Playgroud)
结果是:
name guest
principal_id 2
type S
type_desc SQL_USER
default_schema_name guest
create_date 11/13/98 2:58 AM
modify_date 10/16/01 4:31 PM
owning_principal_id NULL
sid 0x3C2E66759FFBC14F84127D6795C27FD3
is_fixed_role 0
Run Code Online (Sandbox Code Playgroud)
数据库似乎对这是否是特殊用户感到困惑。有什么可以做的吗?
用户“guest”永远不会被分配到服务器登录名,即使在全新安装时,它也被归类为没有登录名的 SQL 用户。由于您只能设置登录的 SID(创建时),而不是用户,我认为这是不可能的;sp_change_users_login 不能准确地工作,因为来宾帐户不应映射到服务器登录名。因此,用户“客人”始终是孤立用户。可能不是你想要的答案:)
| 归档时间: |
|
| 查看次数: |
1716 次 |
| 最近记录: |