SqlServer 认证之包含数据库
2016-07-08 09:50
369 查看
包含数据库(Contained Database): 作用是这个数据库的创建的用户不需要再指定登陆名就可以连接访问。
优点:数据库在异地恢愎时,不需要再创建登陆名。即迁移的时候不再需要在新实例上添加登陆名。(PS:Alawayson 没有同步登陆名和作业。这个可以解决登陆名的问题)
缺点:只能访问自身数据库,并不能访问同一实例上的其他数据库。(PS:博主未能访问成功,不是肯定不能访问)
使用步骤:
实例支持:
新建或修改数据库的包含类型为部份。
当修改数据库时,还需要将映射到 SQL Server 登录名的数据库用户转换为具有密码的包含数据库用户。
使用系统存储过程:
参考代码:
参考网址
https://msdn.microsoft.com/zh-cn/library/ff929275.aspx
连接时指定数据库名。即连接串中,需要指定initial catalog 或Database
优点:数据库在异地恢愎时,不需要再创建登陆名。即迁移的时候不再需要在新实例上添加登陆名。(PS:Alawayson 没有同步登陆名和作业。这个可以解决登陆名的问题)
缺点:只能访问自身数据库,并不能访问同一实例上的其他数据库。(PS:博主未能访问成功,不是肯定不能访问)
使用步骤:
实例支持:
EXEC sys.sp_configure N'contained database authentication', N'1' GO RECONFIGURE WITH OVERRIDE GO
新建或修改数据库的包含类型为部份。
Create Database DBName Containment=partial
Alter DataBase DBName set Containment=partial
当修改数据库时,还需要将映射到 SQL Server 登录名的数据库用户转换为具有密码的包含数据库用户。
使用系统存储过程:
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' }
参考代码:
DECLARE @username sysname ; DECLARE user_cursor CURSOR FOR SELECT dp.name FROM sys.database_principals AS dp JOIN sys.server_principals AS sp ON dp.sid = sp.sid WHERE dp.authentication_type = 1 AND sp.is_disabled = 0; OPEN user_cursor FETCH NEXT FROM user_cursor INTO @username WHILE @@FETCH_STATUS = 0 BEGIN EXECUTE sp_migrate_user_to_contained @username = @username, @rename = N'keep_name', @disablelogin = N'disable_login'; FETCH NEXT FROM user_cursor INTO @username END CLOSE user_cursor ; DEALLOCATE user_cursor ;
参考网址
https://msdn.microsoft.com/zh-cn/library/ff929275.aspx
连接时指定数据库名。即连接串中,需要指定initial catalog 或Database
相关文章推荐
- MQ产品比较
- MySQL 学习笔记
- Redis 事务
- 如何解决mysql数据库X小时无连接自动关闭
- PlSql链接不上Oracle问题跟踪
- hbase hive
- 数据库唯一性约束
- 读取Excel表格数据存入mongodb数据库
- Oracle修改已有数据的字段类型
- 查看ORACLE 数据库及表信息
- redis入门
- 动态添加表sql
- PL/SQL Developer 免安装步骤
- 使用mycat 读写分离mysql
- 查看oracle当前session
- spring3+security3+struts2+mybatis+memcached+gbac权限架构开源项目
- Memcache
- mysql中怎样配置general log
- mysqldump 的25个小技巧
- 使用SQL Plan Baselines影响已加入hints的SQL执行计划