我有一个可以在sql server中登录的用户。现在我需要在数据库中添加用户,但是我不确定该用户是否已经存在于数据库中。 所以我需要脚本,它检查用户是否存在于数据库中,如果不存在则应该在该数据库中添加该用户。
我该怎么做?
答案 0 :(得分:1)
您不能拥有重复的用户,因此您可以尝试创建它并处理错误(如果它已经存在)。
答案 1 :(得分:1)
查看用户目录视图sys.database_principals
:
select * from [dbname].sys.database_principals
where name = 'loginname';
为了100%准确,您需要按用户SID检查,而不是按名称检查:
select * from [dbname].sys.database_principals
where sid = SUSER_SID('loginame');
请注意,用户可能已经通过组和角色成员资格进行访问,但这是一个单独的主题。
答案 2 :(得分:1)
我认为这有效:
如果DATABASE_PRINCIPAL_ID('login')为空,则为
BEGIN
CREATE USER [用户名] FOR LOGIN [登录]
结束
^仅当数据库中的用户名与登录名相同时才有效。
答案 3 :(得分:0)
执行SELECT COUNT(*)
,看看你是0还是1。