包含数据库--相关设置
--==================================================
--在数据库实例级别启用包含数据库
EXEC sp_configure 'show advanced options',1
GO
RECONFIGURE
GO
EXEC sp_configure 'contained database authentication',1
GO
RECONFIGURE
--==================================================
--修改数据库为包含数据库
ALTER DATABASE [DB5] SET CONTAINMENT =PARTIAL;
--创建含数据库
CREATE DATABASE [DB5] CONTAINMENT =PARTIAL;
--==================================================
--创建带密码的用户
CREATE USER [MyUser] WITH PASSWORD='Auto@sql123';
GO
ALTER AUTHORIZATION ON SCHEMA::[db_owner] TO [MyUser];
GO
--==================================================
--先创建普通登录用户
--USE [master]
GO
CREATE LOGIN [MyLogin1] WITH PASSWORD=N'Auto@sql',
DEFAULT_DATABASE=[master],
CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [DB5]
GO
CREATE USER [MyLogin1] FOR LOGIN [MyLogin1]
GO
USE [DB5]
GO
ALTER ROLE [db_owner] ADD MEMBER [MyLogin1]
GO
--==================================================
--将已存在的user转化成带密码的user
--sp_migrate_user_to_contained [ @username = ] N'user' ,
--[ @rename = ] { N'copy_login_name' | N'keep_name' } ,
--[ @disablelogin = ] { N'disable_login' | N'do_not_disable_login' }
--[@username = ] N'user'
--当前包含的数据库中的用户名称,该用户将映射到经过身份验证的
--SQL Server 登录名。该值为sysname,默认值为NULL。
--[@rename = ] N'copy_login_name' | N'keep_name'
--如果基于登录名的数据库用户具有与登录名不同的用户名,请使用
--keep_name 在迁移过程中保留数据库用户名。可以通过copy_login_name
-- 使用登录名创建新的包含数据库用户,而不是使用用户名。如果基于
--登录名的数据库用户具有与登录名相同的用户名,这两个选项将创建
--包含数据库用户而不更改名称。
--[@disablelogin = ] N'disable_login' | N'do_not_disable_login'
--disable_login 在master 数据库中禁用登录名。若要在禁用登录名
--时进行连接,连接必须将包含数据库名称作为initial catalog
--提供以作为连接字符串的一部分。
EXEC sp_migrate_user_to_contained
@username=N'MyLogin1',
@rename=N'keep_name',
@disablelogin=N'disable_login'