2016-04-15 43 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

相關問題