在数据库中添加用户?

时间:2010-01-06 19:40:57

标签: sql-server database add

我有一个可以在sql server中登录的用户。现在我需要在数据库中添加用户,但是我不确定该用户是否已经存在于数据库中。 所以我需要脚本,它检查用户是否存在于数据库中,如果不存在则应该在该数据库中添加该用户。

我该怎么做?

4 个答案:

答案 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。