sql server 授权相关命令
原文:https://blog.csdn.net/hfdgjhv/article/details/83834076
https://www.cnblogs.com/shi-yongcui/p/7755521.html
https://www.cnblogs.com/accumulater/p/6158387.html
https://www.cnblogs.com/xwdreamer/archive/2012/06/25/2562828.html
https://docs.microsoft.com/zh-cn/sql/t-sql/statements/grant-transact-sql?view=sql-server-2017
Grant命令:同意,授予==>授权;为主体授予安全对象的权限。
GRANT 【1】<某种权限> ON 【2】<某个对象> TO 【3】<某个用户、登录名或组> [WITH GRANT OPTION]
适用于: SQL Server(从 2008 开始)
其中:
【1】<某种权限>称为“安全对象的权限”,【2】<某个对象>称为“安全对象”,【3】<某个用户、登录名或组>称为“主体”
【1】<某种权限>是由【2】<某个对象>决定的:不同安全对象拥有不同的权限
| 安全对象 | 权限 |
| 数据库 | BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE 和 CREATE VIEW |
| 标量函数 | EXECUTE 和 REFERENCES(参考文献) |
| 表值函数 | DELETE、INSERT、UPDATE、SELECT 和 REFERENCES(参考文献) |
| 存储过程 | EXECUTE |
| 表 | DELETE、INSERT、UPDATE、SELECT 和 REFERENCES(参考文献) |
| 视图 | DELETE、INSERT、UPDATE、SELECT 和 REFERENCES(参考文献) |
Deny命令:否认,拒绝==>禁用;为主体禁用安全对象的权限。
Deny 【1】<某种权限> ON 【2】<某个对象> TO 【3】<某个用户、登录名或组> [CASCADE]
适用于: SQL Server(从 2008 开始)
其余同Grant命令。
Revoke命令:撤销,取消==>取消;从主体中取消已有安全对象的权限
Revoke 【1】<某种权限> ON 【2】<某个对象> From 【3】<某个用户、登录名或组>
适用于: SQL Server(从 2008 开始)
其余同Grant命令。
实例:在Sql Server 2012上添加一个登陆用户test,使其只能查询某个数据库temp的某两张表[dbo].[T_DD_OP201],[dbo].[T_DD_OP202]
分析:要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权:1.获得准许连接 SQL Server 服务器的权利;2. 获得访问特定数据库中数据的权利(select, update, delete, create table ...)。
备注:操作时必须有管理员的权限
1.在当前数据库temp中创建数据库角色testrole
exec sp_addrole '角色名'
exec sp_addrole 'testrole'
2. 给数据库角色testrole分配权限,使其只能查询两张表
GRANT 权限 ON 表名 TO 角色名
GRANT SELECT ON dbo.T_DD_OP201 TO testrole
GRANT SELECT ON dbo.T_DD_OP202 TO testrole
3.创建登陆用户
exec sp_addlogin '登陆用户名','登陆用户密码','登陆用户默认数据库'
exec sp_addlogin 'test','test123456','temp'
这时候,test登陆帐户就可以连接到 SQL Server 服务器上了。但是此时还不能访问数据库中的对象。要使 test帐户能够在temp数据库中访问自己需要的对象, 需要在数据库temp中建立一个“数据库用户”,赋予这个“数据库用户” 某些访问权限,并且把登陆帐户test和这个“数据库用户” 映射起来
4.创建数据库用户
exec sp_adduser '登录用户名','数据库用户名','数据库角色'【将Sql Server '登陆用户名'账户添加到具有'数据库用户名'的账户的当前数据库中,并将'数据库用户名'账户添加到'数据库角色'中】
exec sp_adduser 'test','dbtestname','testrole'
备注:将 SQL Server 登录名test添加到具有用户名dbtestname的当前数据库,并将数据库用户dbtestname添加到testrole数据库角色中。这样,登陆用户和数据库用户就关联起来了,当登陆用户登录后就可以访问所有与它关联的数据库用户所在的数据库中的数据。
习惯上,“数据库用户名” 和 “登陆用户名”的名字相同,即以上语句可以改为
exec sp_adduser 'test','test','testrole'
实例:数据库用户、角色、登录的删除操作
1.从数据库角色中删除用户
EXEC sp_droprolemember 'testrole', 'dbtestname'
备注:需有管理员的权限,并在当前数据库中执行
2.删除当前数据库用户
EXEC sp_revokedbaccess 'dbtestname';
3.删除数据库角色
EXEC sp_droprole 'testrole'
4.删除数据库登录
EXEC sp_droplogin 'test'
实例:在执行“EXEC sp_droplogin 'test'”删除登陆名时发生错误:无法删除登录名 '***',因为该用户当前正处于登录状态。 (Microsoft SQL Server,错误: 15434)
1.首先执行:EXEC sp_who 查出用户进程的spid,
2.然后执行:kill spid
3.最后执行:sp_droplogin ‘用户名’
sql server 授权相关命令的更多相关文章
- SQL Server授权购买简单介绍
SQL Server授权购买简单介绍 之前有同事问我,使用盗版序列号的SQL Server到底有没有性能限制,之前本人一直没有深入研究过,后来经过一番资料搜集和查证,汇总成这篇文章 微软的SQL Se ...
- 在SQL中有时候我们需要查看现在正在SQL Server执行的命令
在SQL中有时候我们需要查看现在正在SQL Server执行的命令.在分析管理器或者Microsoft SQL Server Management Studio中,我们可以在"管理-SQL ...
- 在SQL Server中使用命令调用SSIS包
在SQL Server中可以使用dtexec命令运行SSIS包(2005以上版本),当然也可以通过系统过程:xp_cmdshell调用dtexec运行SSIS包. 具体操作步骤如下: 1.首先,当然是 ...
- SQL Server 日期相关
原文:SQL Server 日期相关 原帖出处:http://blog.csdn.net/dba_huangzj/article/details/7657979 对于开发人员来说,日期处理或许简单,或 ...
- 详解SQL Server数据修复命令DBCC的使用
严重级别为 21 表示可能存在数据损坏. 可能的原因包括损坏的页链.损坏的 IAM 或该对象的 sys.objects目录视图中存在无效条目. 这些错误通常由硬件或磁盘设备驱动程序故障而引起. MS ...
- SQL SERVER: 合并相关操作(Union,Except,Intersect)
SQL SERVER: 合并相关操作(Union,Except,Intersect) use tempdb create table tempTable1 (id int primary key id ...
- SQL Server中bcp命令的用法以及数据批量导入导出
原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...
- SQL SERVER 复制相关存储过程
适用于所有类型复制的过程 过程 说明 sp_addscriptexec 向发布的所有订阅服务器发布 Microsoft SQL Server 脚本(.sql 文件). sp_adjustpublish ...
- SQL Server 2000 ——DBCC命令
http://blog.163.com/ruifeng_00/blog/static/6904584200971291923462/ 一.定义 微软当初从SYBASE将DBCC是作为数据库一致性检 ...
随机推荐
- JS操作DOM的一些常用方法
getElementById():获取有指定惟一ID属性值文档中的元素 getElementsByName(name):返回的是数组 getElementsByTagName():返回具有指定标签名的 ...
- .bat 打开程序
为什么要用.bat打开程序. 因为一个一个难得点 怎么做 百度的,start 程序路径\程序 改进 点击bat,不显示dos窗口. 新建.vbs文件 Set shell = Wscript.creat ...
- sass揭秘之@mixin,%,@function(转载)
因为文章内含有很多sass代码,如需自己动手查看编译结果,推荐使用sassmeister这款在线编译工具,方便你阅读学习. 在阅读本文章之前,请先确认你已经阅读了上篇文章sass揭秘之变量,不然会给你 ...
- centos7 redmine安装过程(转载)
redmine 部署过程 redmin官方文档写的太烂加上不熟悉ruby搞了半天,回到家后觉得还是记录下好,希望可以帮助有需要的人,少走弯路. 版本说明 下面的版本很重要redmine 版本 3.3 ...
- 【前端】CSS隐藏元素的方法和区别
CSS隐藏元素的方法和区别 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- MySQL 单表查询多表查询
一 单表查询 表准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex e ...
- 用haproxy实现nginx的proxy_pass转发功能
公司的网站有个需求,主站点上有两个URL,没有在本地nginx上配置,而是在另一台主机的nginx上配置的站点.如果使用nginx作为反向代理,可以使用proxy_pass指令转发对这两个URL的请求 ...
- vue 截取视频第一帧
最近自己写项目,在项目中涉及功能点又截取视频帧的点:需求澄清:移动端封面展示,平台上传图片(多张上传)取第一张上传图片为封面图:如上传视频则截取视频第一帧作为封面图: 实现思路:h5 video标签 ...
- [luogu1463 HAOI2007] 反素数 (约数)
传送门 Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例 ...
- [转载]解决/usr/bin/ld: cannot find -lxxx
在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息: /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source cod ...