在使用 SQLServer 界面创建数据库用户时,不仔细的人可能经常会碰到“XXX是无效登录名或您没有相应的权限”这种 15007 错误。很多人看到这个错误,一般都会检查新建的名称是否合规,以及操作的帐号是否有权限,往往忽略了“无效登录名”这个关键字。使用 SQL 语句创建如出现同样的错误同理。
正确的数据库创建语句如下:
create user database_user_name from sql_login_name;
从正确语句可以看出,数据库用户是基于登录创建的,所以登录用户必须存在。故需要先创建对应的登录用户,然后才能基于登录用户创建数据库的用户。从图形界面创建也是一样,需要遵循先创建登录用户,再创建数据库用户的顺序。