MSSQL为单独数据库创建登录账户

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

    • 当前(非包含)的数据库所面临的问题
      在描述什么是包含数据库之前,先了解一下为什么会出现包含数据库。当前的数据库有一些问题,如下:
      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

原文地址:https://www.cnblogs.com/netqq/p/9070548.html

时间: 2024-11-04 07:24:33

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

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

--服务器角色:--固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL Server,且不能更改分配给它们的权限. --可以在数据库中不存在用户帐户的情况下向固定服务器角色分配登录.--按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述:--1.Bulkadmin:这个服务器角色的成员可以运行BULKINSERT语句.这条语句允许从文本文件中将数据导入到SQLServer 2008数据库中,-- 为需要执行大容量插入到

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

成功安装oracle后,创建一个登录账户 1.切换到oracle用户下 su -l oracle 2.使用sysdba账户登录: sqlplus / as sysdba 3.创建用户 语法:CREATE USER 用户名 IDENTIFIED BY 密码; CREATE USER mmzsit IDENTIFIED BY mmzsit; 4.将刚创建的用户解锁/锁住 语法:ALTER USER 用户名 ACCOUNT UNLOCK/LOCK //用户解锁 alter user mmzsit ac

【Linux】创建安全的SSH登录账户

在实际的产品服务发布环境中,Linux服务器通常禁止使用远程ROOT账户登录,仅仅允许最小权限的远程账户使用SSH登录后,再切换账户达到管理服务器的目的.下面我们就总结一下如何创建安全的SSH登录账户. [运行环境] CentOS,OpenSSH 1.在客户端生成证书秘钥对,生成的文件默认存在~/.ssh/目录下,包括id_rsa与id_rsa.pub两个文件. ssh_keygen 2.从~/.ssh/目录下,拷贝id_ras.pub文件内容到服务器端登录账户下~/.ssh/authorize

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

因为Oracle12c数据库中引入了CDB与PDB的概念(具体介绍请参考潇湘隐者的文章http://www.cnblogs.com/kerrycode/p/3386917.html),我们之前常用的练习SQL语句的SCOTT/tiger账户被放置在了PDB中,而我们链接12c数据库时,默认是登录的CDB 这就导致了很多实用Oracle12c数据库的新手一时找不到熟悉的SCOTT账户... 下面就介绍一下如何在Oracle12c数据库中找到Scott账户 第一步  “开始” 执行“sqlplus”

4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)

 mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,执行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- 选择数据库 use mydb61; -- 增加 dbuser1 用户 --     创建用户'dbuser61'密码为 'dbuser61'拥有操作数据库mydb61的所有权限 GRANT ALL ON mydb61.* TO dbuser61 IDENTIFIED BY "dbuser61&quo

Android(java)学习笔记245:ContentProvider之银行数据库创建和增删改查的实现

1.Android的四大组件: (1)Activity  用户交互的UI界面 (2)Service  后台运行的服务 (3)BroadcastReceiver 广播接收者 (4)ContentProvider  内容提供者 2. ContentProvider  内容提供者 用途:把应用程序私有的数据暴露给别的应用程序. 3.下面通过一个银行数据库创建和增删改查的实现案例说明ContentProvider的使用: (1)首先我们这里要用到数据库,首先我们必须先扩展一个抽象类SQLiteOpenH

oracle数据库创建后要做的事情

用conn /as sysdba登录数据库. 一:先新建用户 create user test01 identified by test02(test01为用户名,test02为用户密码) 二:赋予数据库操作的基本权限 grant connect,resource,dba to test01; 三:创建表空间 根据相应的要求,创建相应的表空间. CREATE TABLESPACE EDUTABLES DATAFILE 'D:\app\Administrator\oradata\test\EDUT

为Linux集群创建新账户,并配置hadoop集群

转自:http://blog.csdn.net/bluesky8640/article/details/6945776 之前装python.jdk.hadoop都是用的root账户,这是一个绝对的失策,linux对用户访问权限很严格,新创的hod账户根本无法启动hadoop,而root在hod模式下使用torque是不被建议的,所以只能用hod账户再重新装一遍. 创建用户.设置密码.修改用户.删除用户: useradd testuser   创建用户testuserpasswd testuser

8天掌握EF的Code First开发系列之3 管理数据库创建,填充种子数据以及LINQ操作详解

本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to Entities 使用LINQ to Entities操作实体 LINQ操作 懒加载和预加载 插入数据 更新数据 删除数据 本章小结 本人的实验环境是VS 2013 Update 5,windows 10,MSSQL Server 2008. 上一篇<Code First开发系列之领域建模和管理实体关系>,我们主要介绍了EF中“约定大于配置”的概念,如何创建数据