作为 DBA,您可以使用 GRANT 语句来将角色特权授予用户。还可以向用户提供将特权授予其他用户的选项。使用 GRANT 语句的 WITH GRANT OPTION 子句可执行此操作。
GRANT rol1 TO usr1 WITH GRANT OPTION;
WITH GRANT OPTION 子句仅对您授予用户的角色(和访问特权)有效。当 TO 子句指定角色时或指定 PUBLIC 组时,如果加入 WITH GRANT OPTION 关键字,数据库服务器会发出错误。
在授予角色特权时,可使用角色名来替代 GRANT 语句中的用户名。可以将角色特权授予另一个角色。例如:假定已将角色 A 的特权授予角色 B。当用户启用角色 B 时,用户将同时获得角色 A 和角色 B 的特权。
然而,角色授权循环不能是传递的。如果将角色 A 的特权授予角色 B,并将角色 B 的特权授予角色 C,那么将角色 C 的特权授予 A 将返回错误。
如果必须更改特权,请使用 REVOKE 语句来删除现有特权,然后使用 GRANT 语句来添加新特权。