Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 数据库管理 » 用户和数据库安全 » 用户安全性(角色和特权) » 升级到基于角色的安全性

 

GRANT 语句语法的更改

如果您有应用程序使用 16.0 以前版本的授权、权限和组的 GRANT 语句语法,您应将这些应用程序修改为使用更新后的角色和特权的语法。下表显示这些语句应该更改为什么。旧的授权、权限和组的 GRANT 语法仍受支持,但不建议使用。

以前权限的继承行为

在 16.0 以前版本的数据库中,如果 DBA、REMOTE DBA、BACKUP、RESOURCE 和 VALIDATE 权限已被指派给用作组的用户,则这些权限不可继承。该组的成员不继承权限的能力。

升级 16.0 以前版本的数据库时,将自动授予等效角色(例如,授予 SYS_AUTH_BACKUP_ROLE,而不授予 BACKUP 权限),并指定 WITH NO SYSTEM PRIVILEGE INHERITANCE 子句以确保继承行为与以前版本保持一致。组成员不继承角色提供的特权。

同理,如果您继续使用不建议使用的 GRANT 语法授予 DBA、REMOTE DBA、BACKUP、RESOURCE 和 VALIDATE,则保持旧的不继承行为。也就是说,授予等效角色,并指定 WITH NO SYSTEM PRIVILEGE INHERITANCE 子句。这些操作均自动完成。

在 16.0 以前版本的数据库中,自动被授予 DBA 和 REMOTE DBA 权限的用户能够将这些权限授予其他用户。以下建议的新语法中, WITH ADMIN OPTION 子句确保管理权限行为与以前版本保持一致。

不建议使用的语法 新语法
GRANT CONNECT TO username [ IDENTIFIED BY ] pwd
无更改。
GRANT GROUP TO user
CREATE OR REPLACE ROLE groupname
FOR USER userid
GRANT MEMBERSHIP IN GROUP groupname [,...] 
TO grantee [,...]
GRANT ROLE groupname [,...] 
TO grantee [,...]
GRANT DBA TO grantee [,...]
GRANT ROLE SYS_AUTH_DBA_ROLE TO grantee [,...] 
WITH ADMIN OPTION
WITH NO SYSTEM PRIVILEGE INHERITANCE
GRANT REMOTE DBA TO grantee [,...]
GRANT ROLE SYS_RUN_REPLICATION_ROLE TO grantee [,...]
WITH ADMIN OPTION
WITH NO SYSTEM PRIVILEGE INHERITANCE
GRANT BACKUP TO grantee [,...]
GRANT ROLE SYS_AUTH_BACKUP_ROLE TO grantee [,...]
WITH NO SYSTEM PRIVILEGE INHERITANCE
GRANT RESOURCE TO grantee [,...]
GRANT ROLE SYS_AUTH_RESOURCE_ROLE TO grantee [,...]
WITH NO SYSTEM PRIVILEGE INHERITANCE
GRANT VALIDATE TO grantee [,...]
GRANT ROLE SYS_AUTH_VALIDATE_ROLE TO grantee  [,...]
WITH NO SYSTEM PRIVILEGE INHERITANCE
GRANT PROFILE TO grantee [,...]
GRANT ROLE SYS_AUTH_PROFILE_ROLE TO TO grantee [,...]
GRANT READCLIENTFILE TO grantee [,...]
GRANT ROLE SYS_AUTH_READCLIENTFILE_ROLE TO TO grantee [,...]
GRANT READFILE TO grantee [,...]
GRANT ROLE SYS_AUTH_READFILE_ROLE TO TO grantee [,...]
GRANT WRITECLIENTFILE TO grantee [,...]
GRANT ROLE SYS_AUTH_WRITECLIENTFILE_ROLE TO TO grantee [,...]
GRANT PUBLISH TO grantee

无更改。但也可以设置新的 PUBLIC 选项 db_publisher:

SET OPTION PUBLIC.db_publisher=grantee
GRANT permission [,...] ON [ owner.]object-name
TO  grantee [,...]
permission : 
ALL [ PRIVILEGES ] 
| ALTER 
| DELETE 
| INSERT 
| REFERENCES [ ( column-name, ...) ] 
| SELECT [ ( column-name, ... ) ] 
| UPDATE [ ( column-name, ... ) ]

无更改。

GRANT EXECUTE ON [ owner.]{ proc | user-def-funct }
TO grantee [,...]
无更改。
GRANT INTEGRATED LOGIN TO user-profile-name [,...] 
AS USER user
无更改。
GRANT KERBEROS LOGIN TO userid [,...] 
AS USER user
无更改。
GRANT CREATE ON dbspacename [,...] TO grantee [,...]
无更改。
 另请参见

GRANT 语句(权限和组)(不建议使用)