sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html
sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
1.一个数据库用户可以对应多个架构(架构是表容器)。架构里面包含的是数据库表。
2.一个数据库角色有可能涉及多个架构。数据库角色对应的是权限。
3.一个用户对应一个数据库角色。
4.登录名与数据库用户在服务器级别是一对多的;在数据库级别是一对一的。
服务器登录名:指有权限登录到某服务器的用户;
服务器角色:指一组固定的服务器用户,默认有9组;
- 登录名一定属于某些角色,默认为public
- 服务器角色不容许更改
- 登录后也不一定有权限操作数据库
数据库用户:指有权限能操作数据库的用户;
数据库角色:指一组固定的有某些权限的数据库角色;
数据库架构:指数据库对象的容器;
- 数据库用户对应于服务器登录名以便登录者可以操作数据库
- 数据库角色可以添加,可以定制不同权限
- 数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象
服务器角色
public
sysadmin--在 SQL Server 中进行任何活动。该角色的权限跨越所有其它固定服务器角色。
serveradmin --配置服务器范围的设置。
setupadmin --添加和删除链接服务器,并执行某些系统存储过程(如 sp_serveroption)。
securityadmin --管理服务器登录。
processadmin --管理在 SQL Server 实例中运行的进程。
dbcreator --创建和改变数据库。
diskadmin --管理磁盘文件。
bulkadmin --执行 BULK INSERT 语句。
数据库角色
public
--public 角色是一个特殊的数据库角色,每个数据库用户都属于它。public 角色:
--捕获数据库中用户的所有默认权限。
--无法将用户、组或角色指派给它,因为默认情况下它们即属于该角色。
--含在每个数据库中,包括 master、msdb、tempdb、model 和所有用户数据库。
--无法除去。
db_owner
--进行所有数据库角色的活动,以及数据库中的其它维护和配置活动。
--该角色的权限跨越所有其它固定数据库角色。
db_accessadmin
--在数据库中添加或删除 Windows NT 4.0 或 Windows 2000 组和用户以及 SQL Server 用户。
db_datareader
--查看来自数据库中所有用户表的全部数据。
db_datawriter
--添加、更改或删除来自数据库中所有用户表的数据
db_ddladmin
--添加、修改或除去数据库中的对象(运行所有 DDL)
db_securityadmin
--管理 SQL Server 2000 数据库角色的角色和成员,并管理数据库中的语句和对象权限
db_backupoperator
--有备份数据库的权限
db_denydatareader
--拒绝选择数据库数据的权限
db_denydatawriter
--拒绝更改数据库数据的权限
先说sqlserver里面的数据库级别设置:
服务器级 -> 数据库级 -> 架构级 - > 数据对象级,比如说:Server.DataBase1.dbo.Table1;这里的意思就是Table1这个表属于dbo这个架构
,dbo这个架构属于DataBase1这个数据库,DataBase1这个数据库属于Server这个服务器。里面的架构其实就是一个容器,好像就是面向对象里面的
命名空间,一个用户可以拥有多个架构,但是不能对没有拥有的架构进行操作。一个数据库角色,是对不同架构里面数据对象的权限组织,也有可能涉及到
多个架构,当某一个用户被转换成一种数据库角色的时候,假如这个用户本身不拥有某一个架构而该数据库角色拥有,那它当它对那个架构进行操作的时候就会出错。
角色,角色意味着一种身份,在数据库服务器里是对一系列权限的组织。
服务器登录名,指有权限登录到某服务器的用户,可以在有权限的情况下创建新的登录名,超级管理员的登录名是sa
服务器角色,指一组固定的服务器用户,默认有9组;
- 登录名一定属于某些角色,默认为public
- 服务器角色不容许更改
- 登录后也不一定有权限操作数据库
数据库用户,指有权限能操作数据库的用户;
数据库角色,指一组固定的有某些权限的数据库角色;
数据库架构,指数据库对象的容器;
- 数据库用户对应于服务器登录名以便登录者可以操作数据库
- 数据库角色可以添加,可以定制不同权限
- 数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象
登录名与用户在服务器级是一对多的,而在数据库里是一对一的。比如说Server这个服务器有4个数据库,DB1,DB2,DB3,DB4,每个数据库都有一个用户USER1,USER2,USER3,USER,在创建一个登录名my的时候可以通过用户映射的操作,为这个登录名在每一个具体的数据库中指定用户,比如可以如下指定my在DB1中的用户是USER1,它是在使用数据库的时候是唯一的,my在不能再DB1中切换用户,除非重新指定它对DB1数据库的用户映射。
用户一般是受权限管理的,在新建一个用户的时候是这样的:
需要指定它的登录名,这也是映射操作的一部分,同时可以指定它的默认架构,如不指定就是dbo,也可以指定它拥有的其它架构和角色成员,不过没有默认数据库角色。
下面看看新建一个角色:
在新建的时候可以指定这个角色拥有那些架构,但是这些结构必须是这个数据库里面的,默认架构为当前用户使用的架构,比如当前用户的架构是dbo,则在角上权限定义时所使用的默认架构就是dbo,当然也可以指定其它的架构。
新增的数据库登陆名, 登陆后不可以修改自己的服务器角色使自己的权限变大(除非是sysadmin角色 因为它的权限已经是最大 ),同样也不能修改 映射到数据库上的用户的角色是其权限变大(本身是dbowner数据库角色的 可以修改 因为dbowner角色的权限已经是最大)
一句话: (登录名、登录账户)自己不能修改自己登录名的服务器角色 以及 自己登录名映射的数据库用户名的角色 使其权限变大 ,只允许改变角色使权限变小(ps: 估计没人愿意这么做)
新增某一数据库用户步骤:
step1:新增服务器登陆账号(选择安全性=>登陆名 => 右击新增登陆名)
step2:新增该账号对应目标数据库的用户名(默认和登陆账号名相同)同时配置该用户数据库角色(备注:以后也可以去 目标数据库=>安全性=>右击目标用户名=>属性 => 修改其对应的权限 和在登录名映射那里修改时等效同步的)
删除某一数据库用户步骤刚好相反:
step1:先删除对应目标数据库的用户名(选择数据库=>目标数据库=>安全性=>右击目标用户选择删除)
step2:再删除服务器登陆名(选择安全性=>登陆名=>右击目标登陆名选择删除)
以 sysadmin服务器角色的账号登陆的用户,可以修改添加任何登陆账号、密码,登陆方式等。
如果 以windows验证登陆方式登陆不上的,可能是 当前windows用户名 不在 登陆账号里 不属于登陆账号, 此时可以用具有sysadmin角色的账号先登陆sql server,添加和windows登陆用户名相同账号,记得前面要加计算机名称,格式:计算机名称\当前windows登陆用户名,如“PC_LXF/Administrator” ,验证方式选择 windows身份验证即可使用windows验证登陆啦。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200520095258934.jpg)
sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系相关推荐
- SQL Server登录名,用户和安全标识符(SID)
抽象 (Abstract) Logins and Users are basic security concepts in SQL Server. They are often, and incorr ...
- sql server 登录名和用户名的区别和联系
sql server 登录名和用户名的区别和联系 总括:登录名可以理解为进入整个大楼的钥匙,用户名可以理解为一个房间的钥匙,这里所说的大楼就是sql server服务器,而房间就是这个sql se ...
- 【解决SQL Server sa连接服务器失败】用户‘sa‘登录失败。已成功与服务器建立连接,但是在登录过程中发生错误
这个问题网上也有写-但是有点杂乱,因为年代久远,很多经验贴格式也很杂乱,图也裂了() 所以我稍微整理了一下网上的步骤,并加以自己的补充 (1)第一次连接服务器,先填写服务器名称(右键我的电脑可以查看到 ...
- SQL server 登录名与用户名
登录名与用户名的区别: 登录名:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源.每个登录名的定义存放在master数据库的syslogins表中 用户名:一个 ...
- sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系**
1.一个数据库用户可以对应多个架构(架构是表容器).架构里面包含的是数据库表. 2.一个数据库角色有可能涉及多个架构.数据库角色对应的是权限. 3.一个用户对应一个数据库角色. 4.登录名与数据库用户 ...
- sql server 登录名和用户名的区别
登录名sql_1,已经有了bookset的用户user_01,现在 在bookset数据库新建user_0101 报错: 登录名sql_1,已经有了bookset的用户user_01,现在 在stud ...
- 如何在SQL Server中发现和处理孤立的数据库用户
介绍 (Introduction) Context 语境 As SQL Server database administrators, we should all know that, most of ...
- sql登录名和用户名_通过分配角色和权限来移动或复制SQL登录名
sql登录名和用户名 This article speaks to, how to copy SQL Logins on the new server with Server Level roles ...
- SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案
SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案) 2011-04-18 09:38 以碰到这个烦人的问题,恢复的时候自带了个用户,但怎么也删除不掉,select ...
最新文章
- 漫画:禅道程序员的一天
- python封装api给vue_vue的封装
- 双模sa_2020年5G终端发展展望:NSA/SA双模终端将成市场“主力军”!
- Java 洛谷 P1059 [NOIP2006 普及组] 明明的随机数
- F4V 封装格式详解(一)-------box
- SpringMVC @ModelAttribute详解
- C++ const修饰符的简单介绍
- [转载] java实现四种常用排序算法
- 流浪猫流浪狗H5完整运营源码下载/可封装APP
- ExecutorService中submit和execute的区别(转)
- 使用python来读取超大型文件数据
- c语言编写keil 设置memory model的编辑器,keil C51的Memory Model 说明[三种Model的选择对编译的影响]】...
- SQL保姆级教程来了,0基础怎么快速上手sql?面试官会从哪些方面考sql?(看完你就能5天掌握SQL要点)...
- c# 操作ppt 设置背景色、字体颜色、PPT转图片
- Android发送通知
- 使用CSS绘制一个平行四边形
- ❤️爆肝新一代大数据存储宠儿,梳理了2万字 “超硬核” 文章!❤️
- 这次把怎么做好一个PPT讲清-演讲篇
- 深度学习应用在图像分割上的网络模型概述
- Go设计模式--访客模式