是否有一种方法,我可以知道是否已在数据库中创建用户(而不是登录)?我的意思是用户不是登录,因为,我知道如何检查登录.我需要检查在特定数据库中创建的用户以及分配给它的角色.
这是用于检查登录的代码:
SELECT name FROM sys.server_principals WHERE name = 'test_user'
Run Code Online (Sandbox Code Playgroud)
但用户怎么样?因为如果没有创建用户,我需要创建用户并为其分配角色.否则,我将继续而不创造.
谢谢
mar*_*c_s 64
怎么样:
USE (your database you want to check the user's existence in)
SELECT *
FROM sys.database_principals
WHERE name = '(your user name to check here)'
Run Code Online (Sandbox Code Playgroud)
sys.server_principals显示在服务器级别定义的登录 - sys.database_principals向您显示数据库级别的主体(例如用户帐户).
gbn*_*gbn 14
这将告诉您给定登录名的匹配用户名
USE MyDB
SELECT
sp.name AS ServerLoginName,
dp.name AS DBUserName
FROM
sys.server_principals sp
LEFT JOIN
sys.database_principals dp ON sp.sid = dp.sid
WHERE
sp.name = 'MyLogin'
Run Code Online (Sandbox Code Playgroud)
小智 8
use SomeDatabase
go
/* built-in system function */
select database_principal_id('UserNameHere')
/* check if exists and drop */
if database_principal_id('UserNameHere') is not null
drop user 'UserNameHere'
go
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54859 次 |
| 最近记录: |