SQL灵活的授权机制

本文围绕SQL的授权与权限收回展开。DBA和用户可根据规则授予权限,授权用GRANT语句,如授予用户查询表权限等,且不能循环授权;收回权限用REVOKE语句,还可使用CASCADE级联收回,介绍了相关语句格式及多个示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。

2.用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。

3.被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。

4.所有授予出去的权限在必要时又都可以用REVOKE语句收回。

1.SQL授权

授权GRANT语句的一般格式

GRANT 权限 ON 【对象类型】 对象名 TO 用户1【WITH GRANT OPTION】

举例1:GRANT SELECT ON  student TO u1;   授予用户u1,查询student表的权限。

举例2:GRANT SELECT ON  student TO u1 WITH GRANT OPTION;

授予用户u1,查询student表的权限,同时用户u1也可以将获得的权限授予其他用户。

注意,不能循环授权。例如u1-->u2-->u3, u3不能再授权给u1。

举例3:GRANT SELECT ON  student TO PUBLIC;授予所有用户查询student表的权限。

举例4:GRANT ALL PRIVILEGES ON  student, course TO u2,u3;

不知道啥原因,上面例4在SQL Server中报错,分开改成:

GRANT ALL PRIVILEGES ON  course TO u2,u3;

GRANT ALL PRIVILEGES ON  student TO u2,u3;

ALL PRIVILEGES也不推荐使用了。

//把对student表和course表的全部权限授予用户u2,u3。

2.SQL收回权限

REVOKE语句一般格式为:

REVOKE 权限 ON 对象类型 对象名 FROM 用户  [CASCADE|RESTRICT]

举例1:REVOKE SELECT ON student FROM u4; //收回u4对student表的查询操作。

举例2:REVOKE SELECT ON  student FROM PUBLIC; //收回所有用户对student表的查询操作。

举例3:REVOKE INSERT ON  student FROM u1 CASCADE;

//CASCADE表示级联,收回直接或间接从u1处获得的对student表的INSERT权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值