从SQL Server中的其他DB创建用户

时间:2013-08-19 18:54:46

标签: sql-server tsql

我是否可以通过主数据库(或任何其他数据库)在数据库上创建用户

IF EXISTS (SELECT 1 FROM   j_test.sys.database_principals WHERE  name = N'test_user') 
  DROP USER j_test.[test_user]; --doesnt't work.

2 个答案:

答案 0 :(得分:5)

您需要将上下文更改为该数据库或动态去那里:

EXEC j_test..sp_executesql N'DROP USER test_user;';

答案 1 :(得分:0)

登录在服务器级别完成,我通常从[master]数据库创建它们。只是我的惯例。

用户在数据库级别完成。您需要将上下文设置为该数据库。 USE命令允许您在数据库之间切换。

此代码段来自我的blog,其中显示了一个假设的数据库[BSA],其中包含一个名为[STAGE]的模式。

-- Which database to use.
USE [master]
GO


-- Delete existing login.
IF  EXISTS (SELECT * FROM sys.server_principals WHERE name = N'BSA_ADMIN')
DROP LOGIN [BSA_ADMIN]
GO

-- Add new login.
CREATE LOGIN [BSA_ADMIN] WITH PASSWORD=N'M0a2r0c9h11$', DEFAULT_DATABASE=[BSA]
GO


-- Which database to use.
USE [BSA]
GO

-- Delete existing user.
IF  EXISTS (SELECT * FROM sys.database_principals WHERE name = N'BSA_ADMIN')
DROP USER [BSA_ADMIN]
GO

-- Add new user.
CREATE USER [BSA_ADMIN] FOR LOGIN [BSA_ADMIN] WITH DEFAULT_SCHEMA=[STAGE]
GO