2016-04-15 70 views
-2

我正在执行此代码以在我的数据库中创建用户。在SQL Server数据库中删除用户

CREATE LOGIN john WITH PASSWORD = 'john123'; 
GO 

USE mytestdb; 
GO 
CREATE USER [john] FOR LOGIN [john] 
GO 
ALTER USER [john] WITH DEFAULT_SCHEMA=[dbo] 
GO 
ALTER ROLE [db_datareader] ADD MEMBER [john] 
GO 
ALTER ROLE [db_datawriter] ADD MEMBER [john] 
GO 
GRANT EXECUTE ON SCHEMA::[dbo] TO [john] 
GO 

但我想删除这个我创建的用户。

我试着发出此命令

USE myDB; 
DROP USER john; 
GO 

但它抛出这个错误。

数据库主体拥有数据库中的模式,并且不能被删除。

+0

[* **阅读文档!***](https://msdn.microsoft.com/en-us/library/ms189438.aspx) - 它都在那里 - 你只需要**自己做一些搜索! –

+0

我试过这个DROP USER [IF EXISTS] john,但它有语法错误 – jemz

+0

SQL Server 2014(你使用的)不支持'IF EXISTS'概念 - 只是使用'DROP USER john;'.. .. –

回答

1

你可以看到模式的业主有:

SELECT s.name AS [schema_name], dp1.name AS [owner_name] 
    FROM sys.schemas AS s 
    INNER JOIN sys.database_principals AS dp1 ON dp1.principal_id = s.principal_id 

然后换老板:

ALTER AUTHORIZATION ON SCHEMA::[xxxx] TO [dbo] 

“XXXX” - 模式的名称,其所有者是 '约翰' 现在

+0

什么是应用程序?是我的数据库名称? – jemz

相关问题