sql - 如何在 SQL 中检查 USER 是否已在数据库中创建?

标签 sql tsql

有没有一种方法可以让我知道用户(不是登录名)是否已在数据库中创建?我的意思是用户而不是登录,因为我知道如何检查登录。我需要检查在特定数据库中创建的用户以及分配给它的角色。

这是检查登录的代码:

SELECT name FROM sys.server_principals WHERE name = 'test_user'

但是用户呢?因为我需要创建用户并为其分配角色(如果未创建)。否则,我将继续不创建。

谢谢

最佳答案

怎么样:

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)'

sys.server_principals 显示在服务器级别定义的登录名 - sys.database_principals 显示数据库级别的主体(例如用户帐户)。

关于sql - 如何在 SQL 中检查 USER 是否已在数据库中创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6722540/

相关文章:

sqlcmd 无法找到存在的库 (libmsodbcsql-17.0.so.1.1)

sql-server - 如何在sql server中添加具有自动增量的主键列

sql - 在 WHERE 子句中引用列别名

tsql - t-sql顺序持续时间

php - MYSQL查询根据名字和姓氏查找重复记录

python - PostgreSQL - 无法创建表 - 数据类型点没有访问方法 "btree"的默认运算符类

分组的两列的MySQL计数

mysql - 使用连接优化 SQL 选择查询

SQL 行到列的转换

mysql - 每日考勤显示出勤不存在于另一个表中的所有员工?