当前位置:首页 » 编程语言 » 级联收回多个权限的SQL语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

级联收回多个权限的SQL语句

发布时间: 2023-08-08 18:56:37

sql server中的revoke cascade(用户权限回收问题)

如果不加,会出现像下面这种样子的错误。

消息 4611,级别 16,状态 1,第 1 行
若要撤消或拒绝可授予的特权,请指定 CASCADE 选项。

原因:
因为 U5可以转让insert权限
也就是以前执行的是:
GRANT insert on sc TO u5 With Grant Option
那么这个 u5 用户登录以后。
可以
GRANT insert on sc TO 其它的用户。

revoke insert
on sc
from u5 cascade

目的是把 给 u5 的权限回收回来, 同时把 u5 授权给其他用户的权限,也回收。

下面以一个例子来演示:
我的数据库上面,有 A 与 B , 两个用户。

我首先用管理员帐户,执行
GRANT SELECT ON Goods TO A With Grant Option

然后我用 A 用户登录。
执行了
1> GRANT SELECT ON Goods TO B With Grant Option
2> go
也就是 A 又给B 授权,允许B访问 Goods表,且还能授权给别人。

现在回到管理员帐户上
执行
REVOKE SELECT ON Goods FROM A CASCADE
从而把 A 的权限收回, 同时也把 A 给 B赋 的权限也收回。

那么现在 A 和 B 都没有权限访问 Goods 表了。

假如没有 cascade 连带删除的话,那么管理员把 A 的权限收回了。 但是 B还有权限。B还可以再把权限给 A,还可以给 C,D,E,F,G。

没有 cascade 的话,管理员要累死的。

⑵ 在mysql中,可以使用什么语句来实现权限的撤销

有两种方法,一种方法使用mysql的checktable和repairtable的sql语句,另一种方法是使用MySQL提供的多个myisamchk,isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。1.checktable和repairtable登陆mysql终端:mysql-uxxxxx-pdbnamechecktabletabTest;如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:repairtabletabTest;进行修复,修复之后可以在用checktable命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。2.myisamchk,isamchk其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:myisamchktablename.MYI进行检测,如果需要修复的话,可以使用:myisamchk-oftablename.MYI关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。-----------------------------另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:[-x/tmp/mysql.sock]&&/pathtochk/myisamchk-of/DATA_DIR/*/*.MYI其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!检测修复所有数据库(表)

⑶ 在SQL语言中,用于事务提交的语句是什么,收回权限的命令是什么

提交事务:commit transaction;回滚事务:rollback transaction

⑷ SQL语言的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子句,

则普通用户获权后,可把自己的权限授予其他用户。

(4)级联收回多个权限的SQL语句扩展阅读:

回收revoke

revoke语句:收回授予的权限

revoke一般格式:

revoke <权限> [,<权限>]…

on <对象类型 > <对象名> [,<对象类型 > <对象名>]..

from <用户> [,<用户>]…

[cascade | restrict];

例子:收回所有用户对表SC的查询权限

revoke select

on table sc

from public;

⑸ 如何理解SQL Server中权限是如何级联回收的

系统权限不会被级联回收。
对象权限会被级联回收。

例如:
收回用户li对表employee的查询权限,同时级联收回li授予其他用户的该权限。
SQL语句为:
WITH CHECK OPTION select ON TABLE employee FROM li CASCADE