ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

(5.1)配置与管理工具——包含数据库

2019-06-20 12:42:11  阅读:257  来源: 互联网

标签:5.1 包含 database 数据库 管理工具 用户 GO test


关键字:包含数据库,部分包含数据库,迁移数据库,孤立用户解决办法

前提:2012以上才可以用

 

概念:参考(MSDN:包含数据库迁移包含数据库

部分包含数据库
  部分包含数据库是一种包含数据库,可允许存在跨越数据库边界的某些功能。 SQL Server 包括确定何时跨越包含边界的功能。
包含的用户
包含数据库有两种用户类型。
具有密码的包含数据库用户
  具有密码的包含数据库用户由数据库进行身份验证。
Windows 主体
  授权的 Windows 用户和授权的 Windows 组的成员可直接连接到数据库,而无需登录 master 数据库。 数据库信任 Windows身份验证。

查看数据库的包含状态: 
database_uncontained_usage
sys.dm_db_uncontained_entities (Transact-SQL)

好处:
(1)数据库迁移,避免孤立用户
  在移动数据库时会发生的问题之一是:在数据库从一个实例移到另一个实例时,某些重要信息可能无法使用。 
例如,登录信息存储在实例中,而不是存储于数据库中。 
如果将非包含数据库从 SQL Server的一个实例移到另一个实例,则这些信息会留在原地。造成孤立用户问题。

(2)使用 AlwaysOn 的包含数据库用户的好处,避免孤立用户
  通过创建包含用户,可使用户直接连接到包含数据库。 
  这在高可用性和灾难恢复方案中(例如在 AlwaysOn 解决方案中)是非常重要的功能。 
  如果用户是包含用户,则在故障转移时,用户无需在承载辅助副本的实例上创建登录名,就能够连接到辅助副本。 这会给用户带来直接的好处。
(3)数据库管理,可以直接在数据库操作
  通过在数据库中维护数据库设置,而非在 master 数据库中进行维护,使每个数据库所有者都可以更好地控制其数据库,而不必向数据库所有者授予 sysadmin 权限。

 



 

 

一、如何开启并创建相关的数据库用户:

1.1 修改实例配置,  用代码或界面操作:

EXEC sys.sp_configure N'contained database authentication', N'1'
GO
RECONFIGURE WITH OVERRIDE
GO

 

   

 


1.2 修改数据库 ( 希望变成包含数据库的DB ) 配置,  用代码或界面操作:

USE [master]
GO
ALTER DATABASE [test] SET CONTAINMENT = PARTIAL WITH NO_WAIT
GO

 

   

 


1.3 为测试库创建带密码的用户, 代码或界面操作:

USE [test]
GO
CREATE USER [test] WITH PASSWORD=N'test'
GO



USE [test]
GO
ALTER ROLE [db_owner] ADD MEMBER [test]
GO

 

 


二、如何连接?

 

   

  

 

 

 

三、如何备份后还原到其它实例上?

先备份:

BACKUP DATABASE test TO DISK=N'd:\database_bak\test20171214.bak' WITH COMPRESSION,STATS=50

再还原, 注:其它实例必须也开启包含数据库配置!
EXEC sys.sp_configure N'contained database authentication', N'1'
GO
RECONFIGURE WITH OVERRIDE
GO

USE [master]
RESTORE DATABASE [test] FROM 
DISK = N'E:\database_bak\test20171214.bak' WITH FILE = 1
, MOVE N'test' TO N'D:\database\test.mdf'
, MOVE N'test_log' TO N'D:\database\test_log.ldf', NOUNLOAD, STATS = 50
GO

 

四、还原之后, 马上可以用 1.3 创建的用户, 用步骤 (二) 的方法访问迁移到新实例上的这个包含数据库了!

 

 

参考文章: 

---------------------
实操原文:CSDN -》吉普赛的歌 :https://blog.csdn.net/yenange/article/details/78803551 
包含数据库概念:https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/contained-databases?view=sql-server-2014

迁移包含数据库:https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/migrate-to-a-partially-contained-database?view=sql-server-2014

标签:5.1,包含,database,数据库,管理工具,用户,GO,test
来源: https://www.cnblogs.com/gered/p/11057997.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有