原创链接: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登录名、服务器角色、数据库用户、数据库角色、架构区别联系相关推荐

  1. SQL Server登录名,用户和安全标识符(SID)

    抽象 (Abstract) Logins and Users are basic security concepts in SQL Server. They are often, and incorr ...

  2. sql server 登录名和用户名的区别和联系

     sql server 登录名和用户名的区别和联系  总括:登录名可以理解为进入整个大楼的钥匙,用户名可以理解为一个房间的钥匙,这里所说的大楼就是sql server服务器,而房间就是这个sql se ...

  3. 【解决SQL Server sa连接服务器失败】用户‘sa‘登录失败。已成功与服务器建立连接,但是在登录过程中发生错误

    这个问题网上也有写-但是有点杂乱,因为年代久远,很多经验贴格式也很杂乱,图也裂了() 所以我稍微整理了一下网上的步骤,并加以自己的补充 (1)第一次连接服务器,先填写服务器名称(右键我的电脑可以查看到 ...

  4. SQL server 登录名与用户名

    登录名与用户名的区别: 登录名:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源.每个登录名的定义存放在master数据库的syslogins表中 用户名:一个 ...

  5. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系**

    1.一个数据库用户可以对应多个架构(架构是表容器).架构里面包含的是数据库表. 2.一个数据库角色有可能涉及多个架构.数据库角色对应的是权限. 3.一个用户对应一个数据库角色. 4.登录名与数据库用户 ...

  6. sql server 登录名和用户名的区别

    登录名sql_1,已经有了bookset的用户user_01,现在 在bookset数据库新建user_0101 报错: 登录名sql_1,已经有了bookset的用户user_01,现在 在stud ...

  7. 如何在SQL Server中发现和处理孤立的数据库用户

    介绍 (Introduction) Context 语境 As SQL Server database administrators, we should all know that, most of ...

  8. sql登录名和用户名_通过分配角色和权限来移动或复制SQL登录名

    sql登录名和用户名 This article speaks to, how to copy SQL Logins on the new server with Server Level roles ...

  9. SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案

    SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案) 2011-04-18 09:38 以碰到这个烦人的问题,恢复的时候自带了个用户,但怎么也删除不掉,select ...

最新文章

  1. 漫画:禅道程序员的一天
  2. python封装api给vue_vue的封装
  3. 双模sa_2020年5G终端发展展望:NSA/SA双模终端将成市场“主力军”!
  4. Java 洛谷 P1059 [NOIP2006 普及组] 明明的随机数
  5. F4V 封装格式详解(一)-------box
  6. SpringMVC @ModelAttribute详解
  7. C++ const修饰符的简单介绍
  8. [转载] java实现四种常用排序算法
  9. 流浪猫流浪狗H5完整运营源码下载/可封装APP
  10. ExecutorService中submit和execute的区别(转)
  11. 使用python来读取超大型文件数据
  12. c语言编写keil 设置memory model的编辑器,keil C51的Memory Model 说明[三种Model的选择对编译的影响]】...
  13. SQL保姆级教程来了,0基础怎么快速上手sql?面试官会从哪些方面考sql?(看完你就能5天掌握SQL要点)...
  14. c# 操作ppt 设置背景色、字体颜色、PPT转图片
  15. Android发送通知
  16. 使用CSS绘制一个平行四边形
  17. ❤️爆肝新一代大数据存储宠儿,梳理了2万字 “超硬核” 文章!❤️
  18. 这次把怎么做好一个PPT讲清-演讲篇
  19. 深度学习应用在图像分割上的网络模型概述
  20. Go设计模式--访客模式

热门文章

  1. 将页面元素置为不可修改Readonly,所有元素统一修改,统一调用
  2. 2022-2028年中国实心轮胎行业市场研究及前瞻分析报告
  3. etcd 笔记(04)— etcd 网关与 gRPC 网关
  4. Git 最全命令总结都在这里了
  5. 2022-2028年中国ABS管行业市场全景调研及发展趋势分析报告
  6. 安全保密领域人工智能的应用
  7. 论文阅读工具ReadPaper
  8. 工艺技术:14nm与28nm工艺
  9. CodeGen CreateFile实用程序
  10. 广泛的信号处理链如何让语音助理“正常工作”