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

[* ** ПРОЧИТАЙТЕ DOCS! ***] (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] 

"хххх" - имя схемы, владельцем которого является 'джон' сейчас

+0

Что такое приложения? Это мое имя базы данных? – jemz

Смежные вопросы