数据库用户映射到 SQL Server 登录名

发布时间:2019-02-22  栏目:SQL  评论:0 Comments

1.在SQL Server中,用户和剧中人物是分为服务器级别和数据库级其他

是因为不是稳定在一台总括机开发,平时索要把数据备份与回复。或许是帮助客户修改程序,接收到客户备份好的数量,必要在处理器复苏。

2.服务器级别

登录名:指有权力登录到某服务器的用户,例如一流管理员的记名名是sa;

              登录名具体地点在  数据库——>安全性——>登录名

           
  图片 1

 

服务器角色:为帮扶您管理服务器上的权能,SQL
Server 提供了好多角色,这么些角色是用于对其他重点开展分组的平安重点。
服务器级剧中人物
的权位功效域为服务器范围。SQL Server 提供了九种稳定服务器角色,
无法转移给予固定服务器角色的权力,那9组角色分别如下:
sysadmin         —— 在SQL
Server中展开任何活动,该角色的权力跨越具有其余固定服务器角色
serveradmin   ——
更改服务器范围内的布置选项并关闭服务器
setupadmin     ——
添加和删除链接服务器,并施行有些系统存储进度(如 sp_serveroption)
securityadmin ——
授予数据库引擎的拜访权限和安插用户权限的能力使得安全管理员可以分配超越三分之二服务器权限,securityadmin
角色应视为与sysadmin 剧中人物同样
processadmin   —— 管理在 SQL
Server 实例中运作的进度
dbcreator          ——
创制和改变数据库,可是没有读取权限
diskadmin          ——
管理磁盘文件
bulkadmin          —— 执行 BULK
INSERT 语句
public                 —— 每一个SQL Server 登录名均属于 public 服务器角色。
如若未向某些服务器主体赋予或拒相对某些安全目的的特定权
限,该用户将继承授予该目标的 public
角色的权能。当你愿意该目标对全体用户可用时,只需对其它对象分配 public
权限即可。
你不恐怕更改 public 中的成员涉及。public
的落实格局与其他剧中人物不一样,但是,可以从 public 授予、拒绝或收回权限。

           服务器角色具体地方在  数据库——>安全性——>服务器角色

         
 图片 2

 

注意:
>>登录名一定属于某个角色,默许为public
>>服务器角色不容许更改
>>登录后也不自然有权力操作数据库

这般就必要将数据库用户映射到 SQL Server
登录名。怎么着映射?可选择下边的系列存储进程:

3.数据库级别

用户:指有权限能操作数据库的用户;

          用户具体地方在  数据库——>有个别具体库——>安全性——>用户

         
图片 3

 

        

数据库剧中人物:SQL Server
中有二种档次的数量库级剧中人物:数据库中预约义的“固定数据库角色”和您可以成立的“灵活数据库角色”
恒定的有一些权力的数据库角色,全体数据库中都有这一个角色,暗许有13个,分别如下;

public
–public 角色是三个奇异的数据库剧中人物,每种数据库用户都属于它。public
角色:
 >>捕获数据库中用户的富有暗许权限。
 >>无法将用户、组或剧中人物指派给它,因为默许情形下它们即属于该剧中人物。
 >>包含在各种数据库中,包罗 master、msdb、tempdb、model
和装有用户数据库。
 >>不能够除去。

db_owner
–举办富有数据库角色的活动,以及数据库中的其余维护和配备移动。
–该脚色的权柄跨越具有其他固定数据库剧中人物。

db_accessadmin
–在数据库中丰裕或删除 Windows NT 4.0 或 Windows 三千 组和用户以及 SQL
Server 用户。

db_datareader
–查看来自数据库中保有用户表的上上下下数额。

db_datawriter
–添加、更改或删除来自数据库中享有用户表的多少

db_ddladmin
–添加、修改或除去数据库中的对象(运维具有 DDL)

db_securityadmin
–管理 SQL Server 两千数据库角色的剧中人物和分子,并管理数据库中的语句和对象权限

db_backupoperator
–有备份数据库的权限

db_denydatareader
–拒绝拔取数据库数据的权力

db_denydatawriter
–拒绝改变数据库数据的权能

        数据库剧中人物具体地方在 
数据库——>有些具体库——>安全性——>剧中人物——>数据库剧中人物

     
 图片 4

 

留意:请不要将灵活数据库角色添加为固定剧中人物的积极分子,这会造成意外的权力升级。

 

架构:架构(Schema)是一组数据库对象的集聚,它被单个管事人(可以是用户或角色)所具有并构成唯一命名空间。可以将架 

构看成是目的的器皿。

 >>数据库用户对应于服务器登录名以便登录者能够操作数据库
 >>数据库角色可以加上,可以定制不一样权限  
 >>数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象

      架构数据库角色具体地点在 
数据库——>某些具体库——>安全性——>架构

   
  图片 5

 

EXECUTE sp_change_users_login ‘update_one’,’user’,’login’

4.数据库级别设置

服务器级 -> 数据库级 -> 架构级 – >
数据对象级,比如说:Server.DataBase1.dbo.Table1;那里的意味就是Table1这么些表属于dbo那
个架构,dbo那么些架构属于DataBase1这一个数据库,DataBase1这些数据库属于Server那些服务器。里面的架构其实就是一个器皿,好像
就是面向对象里面的命名空间,三个用户可以具备多个架构,可是无法对没有具备的架构进行操作。1个数据库剧中人物,是对两样架构里
面数据对象的权力社团,也有大概涉及到多少个架构,当某二个用户被转换来一种数据库角色的时候,假若那几个用户自个儿不持有某一个架
构而该数据库角色有所,这它当它对特别架构举办操作的时候就会出错。

 

5.相互的关联

(1)登录名与数据库用户在服务器级别是一对多的,在数据库级别是出色的
   
登录名可以知道为进入整个大楼的钥匙,用户名可以清楚为三个屋子的钥匙,那里所说的楼层就是sql
server服务器,而房间就是
其一sql
server服务器中的具体的库,要留心登录名是存在于master数据库的syslogins表中,用户名是在挨家挨户具体的库下建立的(也就
是要先进入各类库),
最根本的是:二个记名名可以和三个不等库下的用户做映射,可是在同二个库下只可以和四个用户做映射,并且一
个用户名可以和多少个登录名有映射关系,
真正有权力的是用户名,只不过是用登录名去登进数据库,然后去找映射的用户名,那样就
有了相应的权位,刚起初创制的登录名只要把该登录名的服务器角色设置为Database
Creator,就足以成立新的数据库了,并且新建立
的那些数据库中会自动生成八个用户名:dbo和guest。并且刚刚确立的报到名就和dbo映射了,还有就是rbo也和sa映射了,因为sa作为
协会者的登录名和各种库中的rbo用户映射。

(2)二个数据库角色有只怕涉嫌七个架构,数据库角色对应的是权力
(3)一个用户对应一个数据库角色
(4)二个数据库用户可以对应多少个架构(架构是表容器),架构里面包蕴的是数据库表。

上面的’update_one’是实施的操作,将方今数据库中钦命的
user 链接到现有的 SQL Serverlogin。

6.用T_SQL创设用户和登录用户例子

-- 1.创建登录用户(在master库下面执行)
USE master
GO
CREATE LOGIN readonlylogin WITH password='abc123...';

-- 2.创建数据库只读用户(在某个用户数据库下面执行)
USE TestDB
GO
CREATE USER readonlyuser FROM LOGIN readonlylogin;

-- 3.将用户加入数据库角色,例如 所有者角色db_owner、只读角色db_datareader等(在某个用户数据库下面执行)
USE TestDB
GO
EXEC sp_addrolemember 'db_datareader', 'readonlyuser';

--EXEC sp_addrolemember 'db_owner', 'readonlyuser';----可以将用户关联到多个数据库角色中

--EXEC sp_droprolemember 'db_owner', 'readonlyuser'----从特定的数据角色中删除用户

-- 4.用我们刚刚创建的readonlylogin用户进行登录,登录时要注意将“选项(英文是Options)-->连接属性(Connection Properties)-->连接数据库(Connect to database)”改为我们的目标数据库例如TestDB下面

  注意:

  1.登录名和用户名可以起一样的名字;

  2.只假使在平时的SQL Server中,就按上边操作即可,若是微软云Azure中的SQL
Server,只怕有点语句不只怕用,例如use master,default_schema=dbo等

 

 

参考地址:

https://blog.csdn.net/dawn4317/article/details/51338166

https://www.2cto.com/database/201712/707297.html

https://yq.aliyun.com/articles/381724

http://www.cnblogs.com/xwdreamer/archive/2012/06/25/2562828.html

https://blog.csdn.net/cjh200102/article/details/7359874

‘user’是指当数据库的用户名。

‘login’ 就您将要指向的SQL
Server 登录的名。

留下评论

网站地图xml地图