有什么方法可以从主数据库(或任何其他数据库)在数据库上创建用户
IF EXISTS (SELECT 1 FROM j_test.sys.database_principals WHERE name = N'test_user')
DROP USER j_test.[test_user]; --doesnt't work.
有什么方法可以从主数据库(或任何其他数据库)在数据库上创建用户
IF EXISTS (SELECT 1 FROM j_test.sys.database_principals WHERE name = N'test_user')
DROP USER j_test.[test_user]; --doesnt't work.
您要么需要将上下文更改为该数据库,要么动态地去那里:
EXEC j_test..sp_executesql N'DROP USER test_user;';
登录是在服务器级别完成的,我通常从 [master] 数据库创建它们。只是我的约定。
用户在数据库级别完成。您需要将上下文设置为该数据库。USE 命令允许您在数据库之间切换。
此片段来自我的博客,其中显示了一个假设数据库 [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