SQL Server2005为登录名分配数据库权限失败:创建对于用户"user01"失败

下午在SQL Server2005上新建了一个登录名user01,但在给他分配数据库权限(DataCenter)时总是失败,提示:创建对于用户"user01"失败。



找了很久才发现原因,但在说明原因之前我先说明一个现象:SQL Server2005登录名和数据库用户是两个不同的概念,在给登录名分配数据库权限时都会为数据库新建一个用户,并将他们关联,由于新建用户名称和登录名默认是相同的,不需要去修改,所有我们平时可能不会注意到这个。在删除登录名时,数据库中同名用户并不会一块删除,这在删除登录名时有说明[1]。





好了,现在可以说明原因了:由于先前新建过登录名user01并给DataCenter分配过权限,后来删除了登录名user01,注意仅仅是删除了登录名,数据库中同名用户没有删除,今天再创建登录名user01并分配数据库权限时,由于数据库已经存在用户user01,所以就出错了。解决方法有两种:一是删除数据库用户user01,二是修改默认的新建的数据库用户名,再分配数据库权限就可以成功了。



[1].SQL Server2000删除登录名时会同时删除同名的数据库用户,SQL Server2005不会。


评论: 0 | 引用: 0 | 查看次数: 6605
发表评论
登录后再发表评论!