grant和revoke的区别
发布时间:2025-05-20 20:48:52 发布人:远客网络
一、grant和revoke的区别
选C,SQL语言的GRANT和REVOKE语句主要是用来维护数据库的安全性。
GRANT和 REVOKE两个语句分别是授予权限和回收权限语句,具有对 SQL语言的安全控制功能。
1、授权命令 grant,语法格式(SQL语句不区分大小写):Grant<权限> on表名[(列名)] to用户 With grant option
或 GRANT<权限> ON<数据对象> FROM<数据库用户>
//权限表示对表的操作,如select,update,insert,delete
2、注:授权命令是由数据库管理员使用的,若给用户分配权限时带With grant option子句,
则普通用户获权后,可把自己的权限授予其他用户。
revoke<权限> [,<权限>]…
on<对象类型><对象名> [,<对象类型><对象名>]..
from<用户> [,<用户>]…
例子:收回所有用户对表SC的查询权限
参考资料来源:百度百科-revoke(计算机权限名)
参考资料来源:百度百科-grant(计算机术语)
二、数据库的安全性grant、revoke什么意思
1、数据库中的Grant和Revoke是控制权限的命令。
2、Grant和Revoke是用于数据库管理系统中权限控制的两个关键命令。这两个命令主要用于控制和管理用户对数据库对象的访问权限。
3、Grant命令用于授予用户或角色对数据库对象的访问权限。通过这个命令,数据库管理员可以分配特定的权限给特定的用户或用户组,确保他们只能执行被授权的操作。Grant命令可以帮助管理员细化权限控制,确保数据的安全性。例如,可以授予某个用户查询特定表的权限,而不允许其进行更新或删除操作。
4、与Grant相对应,Revoke命令用于撤销用户或角色对数据库对象的访问权限。当不再需要某些用户或角色拥有某些权限时,数据库管理员可以使用Revoke命令来移除这些权限。这样可以确保只有经过授权的用户才能访问数据库资源,从而提高数据库的安全性。例如,如果某个员工的职责发生变化,不再需要访问某个表的数据,管理员可以使用Revoke命令来移除其对该表的访问权限。
5、综合来看,Grant和Revoke是数据库管理系统中的两个重要命令,用于授予和撤销用户权限。通过这些命令,数据库管理员可以有效地控制和管理用户对数据库对象的访问,确保数据的安全性和完整性。在数据库的日常管理和维护中,合理使用Grant和Revoke命令是非常重要的。
三、数据库里什么叫角色分几种
角色是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。
Microsoft® Windows NT®和 Windows® 2000组的使用方式与角色很相似。有关更多信息,请参见组。
如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员,操作比较容易。
在 Microsoft® SQL Server™ 2000和 SQL Server 7.0版中,用户可属于多个角色。
以下脚本说明登录、用户和角色的添加,并为角色授予权限。
sp_grantlogin'NETDOMAIN\John'
sp_defaultdb'NETDOMAIN\John','courses'
sp_grantlogin'NETDOMAIN\Sarah'
sp_defaultdb'NETDOMAIN\Sarah','courses'
sp_grantlogin'NETDOMAIN\Betty'
sp_defaultdb'NETDOMAIN\Betty','courses'
sp_grantlogin'NETDOMAIN\Ralph'
sp_defaultdb'NETDOMAIN\Ralph','courses'
sp_grantlogin'NETDOMAIN\Diane'
sp_defaultdb'NETDOMAIN\Diane','courses'
sp_grantdbaccess'NETDOMAIN\John'
sp_grantdbaccess'NETDOMAIN\Sarah'
sp_grantdbaccess'NETDOMAIN\Betty'
sp_grantdbaccess'NETDOMAIN\Ralph'
sp_grantdbaccess'NETDOMAIN\Diane'
sp_addrolemember'Professor','NETDOMAIN\John'
sp_addrolemember'Professor','NETDOMAIN\Sarah'
sp_addrolemember'Professor','NETDOMAIN\Diane'
sp_addrolemember'Student','NETDOMAIN\Betty'
sp_addrolemember'Student','NETDOMAIN\Ralph'
sp_addrolemember'Student','NETDOMAIN\Diane'
GRANT SELECT ON StudentGradeView TO Student
GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor
该脚本给 John和 Sarah教授提供了更新学生成绩的权限,而学生 Betty和 Ralph只能选择他们自己的成绩。Diane因同时教两个班,所以添加到两个角色中。ProfessorGradeView视图应将教授限制在自己班学生的行上,而 StudentGradeView应限制学生只能选择自己的成绩。
SQL Server 2000和 SQL Server 7.0版在安装过程中定义几个固定角色。可以在这些角色中添加用户以获得相关的管理权限。下面是服务器范围内的角色。
可以在 SQL Server中执行任何活动。
可以设置服务器范围的配置选项,关闭服务器。
可以管理链接服务器和启动过程。
可以管理登录和 CREATE DATABASE权限,还可以读取错误日志和更改密码。
可以管理在 SQL Server中运行的进程。
可以从 sp_helpsrvrole获得固定服务器角色的列表,可以从 sp_srvrolepermission获得每个角色的特定权限。
每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库内。例如,如果 Database1和 Database2中都有叫 UserX的用户 ID,将 Database1中的 UserX添加到 Database1的 db_owner固定数据库角色中,对 Database2中的 UserX是否是 Database2的 db_owner角色成员没有任何影响。
可以管理全部权限、对象所有权、角色和角色成员资格。
可以发出 ALL DDL,但不能发出 GRANT、REVOKE或 DENY语句。
可以发出 DBCC、CHECKPOINT和 BACKUP语句。
可以选择数据库内任何用户表中的所有数据。
可以更改数据库内任何用户表中的所有数据。
不能选择数据库内任何用户表中的任何数据。
不能更改数据库内任何用户表中的任何数据。
可以从 sp_helpdbfixedrole获得固定数据库角色的列表,可以从 sp_dbfixedrolepermission获得每个角色的特定权限。
数据库中的每个用户都属于 public数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给 public角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给 public角色的权限。