USE ray

DROP USER lei

GO

消息 15138,级别 16,状态 1,第 2 行

数据库主体在该数据库中拥有 架构,无法删除。

分析:

服务器数据库上建立了一个专属的管理员,因为测试想将其删除,但是总是提示该用户拥有架构不能删除,而且架构显示db_owner也不可更改。在SQL Server2000中删除数据库用户很简单,只要直接删除或者使用Drop User命令就可以了,但是SQL Server2008中直接操作是不行的,这是因为在SQL Server 2008中架构是作为实体对待的。所以要删除该用户,需要先删除该用户所拥有的架构或更改此架构的所有者。否则会提示”数据库主体在该数据库中拥有架构,无法删除。

解决方法:

每一个数据库用户对应于一个系统登陆帐号,并且每一个架构只能赋予一个用户。所以直接删除用户的架构是不可以的,然后我就新建一个登录名,并且在用户映射里面将db_owner架构付给他,然后就可以删除之前的用户了。

1.查询当前账户拥有架构:

2.创建另一个用户名,将要删除的用户拥有的架构赋给新用户

USE [ray]

GO

CREATE USER [ray] FOR LOGIN [ray]

GO

USE [ray]

GO

 ALTER AUTHORIZATION ON SCHEMA::[db_owner] TO [ray]

GO

3.删除当前用户

USE [ray]

GO

/****** Object:  User [lei]    Script Date: 03/07/2017 10:38:43 ******/

DROP USER [lei]

GO

命令已成功完成。




Related posts

coded by nessus
,
分享:  DeliciousGReader鲜果豆瓣CSDN网摘
Trackback

no comment untill now

Add your comment now

无觅相关文章插件