对象级权限
语法格式
授予对象级权限
sql
GrantStmt::=
GRANT privileges ON [TABLE | VIEW | PROCEDURE | SEQUENCE] name_space TO grantee_list [WITH GRANT OPTION]
回收对象级权限
sql
RevokeStmt::=
REVOKE privileges ON [TABLE | VIEW | PROCEDURE | PACKAGE | SEQUENCE] name_space FROM grantee_list
| REVOKE GRANT OPTION FOR privileges ON name_space FROM grantee_list
权限信息
sql
privileges::=
ALL PRIVILEGES
| ALL
| operation [,operation]...
operation::=
{SELECT | INSERT | UPDATE | DELETE | EXECUTE | REFERENCES | ALTER | DROP | INDEX | TRIGGER | VACUUM}
grantee_list::=
{ROLE UserId | UserId} [{,} {ROLE UserId | UserId}]...
参数说明
privileges
:授予/回收权限操作类型,包括SELECT
、UPDATE
、EXECUTE
等,若要授予/回收对象的所有可操作权限,可使用ALL
或ALL PRIVILEGES
代替。name_space
:此处为指定授予/回收操作权限对象名,对象名与privileges
操作类型必须匹配,如该对象为TABLE
,则不能授予EXECUTE
权限。grantee_list
:被授予/回收权限的用户名或角色名。WITH GRANT OPTION
:权限可转授,权限的赋予和回收是关联的,如将WITH GRANT OPTION
用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,权限回收时转授的权限会一同被收回,WITH GRANT OPTION
只能在授予对象级和列级权限时使用。REVOKE GRANT OPTION FOR
:回收GRANT语句中指定的WITH GRANT OPTION
的转授权限,用户仍然具有该权限,但是不能将该权限转授予其他用户。
示例
示例1
授予用户U1对于表test_permission的数据插入权限,则用户U1对表test_permisssion无删除、查询、更改、引用等权限。sqlCREATE TABLE test_permission(id int); CREATE USER u1 IDENTIFIED BY 'test_123@'; GRANT INSERT ON test_permission TO u1;
示例2
授予用户U1对于表test_premission所有数据库所允许的操作权限,包括:INSERT、UPDATE、DELETE、SELECT、REFERENCES等。sqlGRANT ALL ON test_permission TO u1;