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权限。
版权归原作者 一键部署 所有, 如有侵权,请联系我们删除。