如果要为一个数据库创建一个独立的账号需要这个数据库为包含数据库

    • 当前(非包含)的数据库所面临的问题
      在描述什么是包含数据库之前,先了解一下为什么会出现包含数据库。当前的数据库有一些问题,如下:
      1、在数据库迁移或部署的过程中一些信息会丢失
           当我们将数据库从一个SQL Server实例迁移到另一个实例是,诸如登陆、工作代理等信息将不能一起被迁移。因为这些信息有特殊用途,自创建后就常驻SQL Server实例。在新的SQL Server实例上重新创建这些任务将是一个耗时、易出错的过程。
      2、从应用开发转向部署
           在Server上部署应用时或许会遇到一些障碍,因为很有可能环境不匹配。例如,创建login时可能没权限,命令行实用工具(如“xp_cmdshell”)或许是禁用的,应用里用到的数据库排序规则或许和Server初始指定的(也可能是默认的)排序规则不同。
      3、应用管理的安全考量
           管理和维护单个数据库比较困难,因为login、job agent等信息是跨数据库实例访问的,因此,允许用户对整个实例授权将引起对其他数据库的不必要访问,进而导致安全隐患。
    • 什么是包含的数据库
      义如其名,它是一种自我包含的数据库。例如,它自带所有创建数据库时所需要的数据库设置及元数据信息。它独立于SQL Server实例,没有外部依赖关系,自带授权用户的自我包含机制。由于它独立于数据库实例,就使得在部署到不同服务器时数据库的排序规则不再是一个问题。
      一个包含的数据库,保留了所有数据库里必要信息和对象,如表、函数、限制、架构、类型等。它也存有所有数据库里的应用级对象,如登陆、代理作业、系统设置、链接服务器信息等。
      这种数据库带给我们的好处是,可以轻松地从一台Server搬移到另一台,并且不需要做任何额外配置就可以立即使用它,因为他们没有任何外部的依赖。

创建包含数据库

方法1: 使用 Management Studio 启用包含的数据库
1.在对象资源管理器中,右击服务器名称,然后单击“属性”

2.在“高级”页面上的“包含”部分中,将“启用包含的数据库”选项设置为“True”(默认为“False”)

3.单击“确定”。

方法2: 使用T-SQL启用包含的数据库

--Enabled Advanced options
sp_configure 'show advanced', 1;
RECONFIGURE WITH OVERRIDE;
go
--Enabled Database Containment
sp_configure 'contained database authentication', 1;
RECONFIGURE WITH OVERRIDE;
go

将一个非包含数据库转为包含数据库

1、右击该数据库并单击其属性

2. 在“选项”一栏,将包含类型选择为“部分”,最后单击“确认”。

这种方法有时候无法完成转换,那么可以试试使用sql来进行转换

USE [master]
GO
ALTER DATABASE TestNonContainedDB SET CONTAINMENT = PARTIAL
GO

  将数据库转为包含数据库后才可以创建账户和密码

USE DBName
GO CREATE USER [username] WITH PASSWORD=N'password', DEFAULT_SCHEMA=[dbo]
GO

创建完毕后就可以使用这个账户链接数据库了,而且当迁移数据库后这个账户也会被跟着迁移走

引文:https://blog.csdn.net/burgess_liu/article/details/7477470

MSSQL为单独数据库创建登录账户的更多相关文章

  1. 为SQL数据库创建登录名和密码

    为了保证数据库的安全性,需要为数据库创建一个登录帐号,通常每个数据库都有一个默认登录帐号sa,该帐号具有最高的管理权限,但是建议最好重新创建一个新帐号,这样不容易让访客知道,能够使数据库变得更安全.创 ...

  2. sql server 2008 数据库管理系统使用SQL语句创建登录用户详细步骤

    --服务器角色:--固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL Server,且不能更改分配给它们的权限. --可以在数据库中不存在用户帐户的情况下向固定服 ...

  3. linux 成功安装oracle后,为其创建一个登录账户

    成功安装oracle后,创建一个登录账户 1.切换到oracle用户下 su -l oracle 2.使用sysdba账户登录: sqlplus / as sysdba 3.创建用户 语法:CREAT ...

  4. sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解

    介绍了sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解 --服务器角色: --固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL S ...

  5. SQL Server 2017命令创建新账户(test-user),并分配数据库权限

    -- 1. 创建登录账号USE [master];GOCREATE LOGIN [test-user] WITH PASSWORD = 'xysu7SZ193SNX6E{{HxubPE3}vr',DE ...

  6. 创建human用户登录数据库创建表

    根据人力资源管理系统中表的设计,创建human用户登录数据库创建 准备阶段 把运行脚本复制到D:\app\Administrator\product\11.2.0\dbhome_1\demo\sche ...

  7. 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)

     mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...

  8. sql server数据库创建、删除,创建表,数据库的sql语句

    create database test on primary -- 默认就属于primary文件组,可省略(/*--数据文件的具体描述--*/ name='test', -- 主数据文件的逻辑名称 ...

  9. Oracle12c 数据库找到Scott账户的方法

    因为Oracle12c数据库中引入了CDB与PDB的概念(具体介绍请参考潇湘隐者的文章http://www.cnblogs.com/kerrycode/p/3386917.html),我们之前常用的练 ...

随机推荐

  1. Linux修改服务器ip

    Linux基础二(修改ip地址.修改网关.修改DNS服务器.重新启动网络配置)   网络的初始化 .ip地址的修改(临时生效) 使用ifconfig命令 ifconfig 网卡名 ip地址 netma ...

  2. 解决Sourcetree 每次拉取提交都需要输入密码

    问题产生背景 客户端领导决定使用http方式拉取和push代码,所以无法使用之前的ssh方式做免密处理 解决办法 方法1:在.git目录中有个config目录,在路径前配置下用户名和密码即可,如下所示 ...

  3. python+selenium+js 处理滚动条

    selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...

  4. PHP 练习1:新闻发布

    1.新闻发布主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  5. 八大疯狂的HTML5 Canvas及WebGL动画效果——8 CRAZY ANIMATIONS WITH WEBGL AND HTML5 CANVAS【收藏】

    HTML5, WebGL and Javascript have changed the way animation used to be. Past few years, we can only a ...

  6. 空间数据库系列一:geomesa&sparksql 分析环境搭建

    geomesa sparksql 分析环境搭建 1.安装hbase-1.3.2.1 standlone版本,作为geomesa的store a.修改配置文件:hbase-1.3.2.1/conf/hb ...

  7. 1.0 docker介绍

    简介: 一种虚拟化的方案 将应用程序自动部署到容器   特点: 轻量 环境的一直性 提高开发生命周期 使用面向服务的架构   场景: 开发.测试.部署 创建隔离的运行环境 集群测试环境 云计算应用   ...

  8. Perl6 Bailador框架(2):路径设置

    use v6; use Bailador; =begin pod get表示是get发送 post表示是post发送 get/post 后面的 '/name' 表示是路径 => sub {} 是 ...

  9. foreign key constraint fails错误的原因

    建表:CREATE TABLE Course ( Cno Char(4) PRIMARY KEY, Cname Char(40), Cpno Char(4), Ccredit Int, FOREIGN ...

  10. Python抓取花瓣网高清美图

    一:前言 嘀嘀嘀,上车请刷卡.昨天看到了不错的图片分享网——花瓣,里面的图片质量还不错,所以利用selenium+xpath我把它的妹子的栏目下爬取了下来,以图片栏目名称给文件夹命名分类保存到电脑中. ...