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

1.一个数据库用户可以对应多个架构(架构是表容器)。架构里面包含的是数据库表。

2.一个数据库角色有可能涉及多个架构。数据库角色对应的是权限。

3.一个用户对应一个数据库角色。

4.登录名与数据库用户在服务器级别是一对多的;在数据库级别是一对一的。

 

用户(User)和架构(Schema)的关系1-*关系

  • 一个架构有且只有一个所有者Owner。
  • 一个用户可以拥有多个架构。

服务器登录名:指有权限登录到某服务器的用户

服务器角色:    指一组固定的服务器用户,默认有9组

  • 登录名一定属于某些角色,默认为public
  • 服务器角色不容许更改
  • 登录后也不一定有权限操作数据库

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

数据库角色:指一组固定的有某些权限的数据库角色

数据库架构:指数据库对象的容器

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

服务器角色

  • sysadmin--在 SQL Server 中进行任何活动。该角色的权限跨越所有其它固定服务器角色。
  • serveradmin --配置服务器范围的设置。
  • setupadmin --添加和删除链接服务器,并执行某些系统存储过程(如 sp_serveroption)。
  • securityadmin --管理服务器登录。
  • processadmin --管理在 SQL Server 实例中运行的进程。
  • dbcreator --创建和改变数据库。
  • diskadmin --管理磁盘文件。
  • bulkadmin --执行 BULK INSERT 语句。

数据库角色

  • public 角色是一个特殊的数据库角色,每个数据库用户都属于它。public 角色: 
  1. --捕获数据库中用户的所有默认权限。
  2. --无法将用户、组或角色指派给它,因为默认情况下它们即属于该角色。
  3. --含在每个数据库中,包括 master、msdb、tempdb、model 和所有用户数据库。
  4. --无法除去。
  • 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验证登陆啦。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 字典、列表、字符串 之间的相互转换

1、列表与字符串转换 列表转字符串: 将列表中的内容拼接成一个字符串 将列表中的值转成字符串 字符串转列表: 用eval转换 将字符串每个字符转成列表中的值 将字符串按分割成列表 2、列表与字典转换 列表转字典: 将两个列表转成字典 将嵌…

【转】aspx,ascx和ashx使用小结

做asp.net开发的对.aspx,.ascx和.ashx都不会陌生。关于它们,网上有很多文章介绍。“纸上得来终觉浅,绝知此事要躬行”,下面自己总结一下做个笔记。1、.aspx Web窗体设计页面。Web窗体页由两部分组成:视觉元素(html、服…

【转】Azure DevOps —— Azure Board 之 长篇故事、特性、用户情景(故事)的用法应用场景

前提 我以前在之前的文章里大概介绍了 Azure Board 的基本使用,可以回看《Azure Board 的基本使用》。如果你想使用 Azure Board 来安排工作的话,请提前了解《敏捷开发》的相关知识。 作者将使用 “Agile” 作为项目的模板,不明白的先阅读《…

【VIJOS - P1037】搭建双塔(dp)

题干: 描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难。为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔。 Mr. F有N块水晶,每块水晶有一个高度&#xff0…

【POJ - 1459】Power Network(网络流最大流,建图)

题干&#xff1a; A power network consists of nodes (power stations, consumers and dispatchers) connected by power transport lines. A node u may be supplied with an amount s(u) > 0 of power, may produce an amount 0 < p(u) < p max(u) of power, may …

【转】React Vue MVC MVVM MVP

首先&#xff0c;在谈这个话题之前&#xff0c; 我们有必要了解一下库和框架的区别。 我们先来看react官网以及vue官网对他们的定位&#xff1a; react: vue: react我们不说了&#xff0c;官网上明明白白说了&#xff0c;人家是一个library&#xff0c;用于构建用户界面。 v…

【转】使用Feature导入WebPart

原文链接&#xff1a;http://www.cnblogs.com/glife/archive/2009/10/27/1590488.html 前些天在刚刚接触WebPart的时候&#xff0c;搜到了一篇《使用Feature导入WebPart》的文章&#xff0c;那个时候对Feature的了解还为零&#xff0c;所以看了是一知半解&#xff0c;等到今天…

【HDU - 5017】Ellipsoid(爬山算法,模拟退火,三分)

题干&#xff1a; Given a 3-dimension ellipsoid(椭球面) your task is to find the minimal distance between the original point (0,0,0) and points on the ellipsoid. The distance between two points (x 1,y 1,z 1) and (x 2,y 2,z 2) is defined as Input There a…

【转】VSTS中版本控制系统Git与TFVC的区别

VSTS&#xff08;Visual Studio Team Services&#xff09; VSTS简单说就是微软TFS(Team Foundation Services)的升级云版&#xff0c;不用像TFS需要在企业内部服务器上部署&#xff0c;并且是免费提供给用户使用的。 每个有微软账号&#xff08;也是免费注册的&#xff09;的…

【LeetCode - 1254】统计封闭岛屿的数目(dfs,连通块)

题目链接&#xff1a;https://leetcode-cn.com/problems/number-of-closed-islands/ 有一个二维矩阵 grid &#xff0c;每个位置要么是陆地&#xff08;记号为 0 &#xff09;要么是水域&#xff08;记号为 1 &#xff09;。 我们从一块陆地出发&#xff0c;每次可以往上下左…

【转】1.2SharePoint服务器端对象模型 之 对象模型概述(Part 2)

&#xff08;三&#xff09;Url 作为一个B/S体系&#xff0c;在SharePoint的属性、方法参数和返回值中&#xff0c;大量的涉及到了Url&#xff0c;总的来说&#xff0c;涉及到的Url可以分为如下四类&#xff1a; 绝对路径&#xff1a;完整的Url&#xff0c;包含了协议头&…

【转】2.1 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 1)

本节将会介绍SharePoint中最为常用的一些对象模型&#xff0c;以及如何使用这些对象模型来访问和操作网站中的数据。几乎所有的SharePoint服务器端开发都会涉及到这些内容&#xff0c;因此应着重掌握本节中所介绍的基本对象模型的使用方法。由于篇幅所限&#xff0c;在介绍每种…

SharePoint安全 - SharePoint网站常用页面URL索引

一. 主要网站内容 首页 /default.aspx /Pages/default.aspx 网站设置 /_layouts/settings.aspx 所有网站内容 /_layouts/viewlsts.aspx 移动端所有网站内容 /_layouts/mobile/mbllists.aspx 共享文档 /shared documents/forms/allitems.aspx 管理网站内容结构 /_l…

docker安装与学习

安装Docker 系统环境&#xff1a;macOS Catalina 10.15.7 通过brew安装docker brew install --cask --appdir/Applications docker 直接brew install docker装上的好像不是&#xff0c;好像是当成了formula了。如下图 brew cask install docker直接提示命令不对&#xff0c…

集群、分布式、负载均衡区别与联系

1、Linux集群主要分成三大类( 高可用集群&#xff0c; 负载均衡集群&#xff0c;科学计算集群) 集群是一个统称&#xff0c;他分为好几种&#xff0c;如&#xff1a;高性能科学群集、负载均衡群集、高可用性群集等。 科学群集 、高性能集群&#xff08;High performance clus…

Mac下使用brew的常用步骤

以docker为例&#xff1a; 第一步&#xff1a; 先 brew search 软件名 然后发现在Formulae和Casks中都有docker包。 第二步&#xff1a; 分别查看info brew info dockerbrew info homebrew/cask/docker 从详情中可以看出&#xff0c;cask下的才是Docker Desktop for Mac&a…

【机器学习】 - keras中的模型可视化plot_model模块(含依赖包pydot和graphviz的详细安装过程与注意事项)

运行环境&#xff1a; win10 anaconda3-spyder python3.7.4 tensorflow2.0.0 首先需要安装两个包pydot和graphviz&#xff0c;不然会报错&#xff1a; Failed to import pydot. You must install pydot and graphviz for pydotprint to work. 然后去anaconda prompt 里去…

【git学习】统计git项目某user的代码量

查看自己的代码量&#xff1a;&#xff08;直接awk编程&#xff09; git log --author"username" --prettytformat: --numstat | awk { add $1; subs $2; loc $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, …

一步步编写操作系统 79 在c代码中内联汇编

基本内联汇编是最简单的内联形式&#xff0c;其格式为&#xff1a; asm [volatile] (“assembly code”) 各关键字之间可以用空格或制表符分隔也可以紧凑挨在一起不分隔&#xff0c;各部分意义如下&#xff1a; 关键字asm用于声明内联汇编表达式&#xff0c;这是内联汇编固定…

LeetCode 237. 删除链表中的节点(思维)

请编写一个函数&#xff0c;用于 删除单链表中某个特定节点 。在设计函数时需要注意&#xff0c;你无法访问链表的头节点 head &#xff0c;只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 https://leetcode-cn.com/problems/delete-node-in-a-…