以下列出了 16.0 版中引入的产品范围的新增功能。有关受支持平台和版本的信息,请参见 http://www.sybase.com/detail?id=1061806。
SQL Anywhere 16.0 引入了以角色和特权为基础的新安全模型,用以替换此前的授权和权限安全模型。利用基于角色的新安全模型,可以对用户可以执行的特权性任务进行精确控制,还能使访问控制的管理变得更加简单。
对于正在向 16.0 版升级的现有 SQL Anywhere 客户,由于系统具备向后兼容性,因此,在客户完成数据库升级后,其应用程序仍能正常使用。提供了专门的章节来向您介绍不同模型之间的区别、执行升级时自动执行的操作以及存在使用 SQL Anywhere 的应用程序时需考虑的事项(如更新 GRANT 和 REVOKE 语句调用)。请参见升级到基于角色的安全性。
有关教程可在此获取:教程:授予角色和特权 (Sybase Central)和教程:授予角色和特权 (SQL)。
以下将简要介绍为支持基于角色的新安全模型而提供的新功能和变更功能。
基于角色的安全模型概述 新增了一套完整的系统特权和角色,可方便客户精确掌握希望其用户所拥有的能力,以此提高安全性。针对可以在系统中执行的每一项特权性操作均创建了相应的系统特权。角色将特权合并为逻辑组。SQL Anywhere 提供了多种预定义角色,您也可自行创建角色。请参见用户安全性(角色和特权)。
升级后,授权、权限和组将替换为角色、特权和用户扩展角色。请参见升级到基于角色的安全性。
新的 TRUNCATE 对象级别特权 新增对象级别的 TRUNCATE 特权,用以允许用户截断指定表或实例化视图。在本软件的之前版本中,这一特权并未作为对象级别权限存在。请参见对象级特权。
新的 LOAD 对象级别特权 新增对象级别的 LOAD 特权,用以允许用户装载特定表。在本软件的之前版本中,这一特权并未作为对象级别权限存在。请参见对象级特权。
用户帐户自动解锁 针对因登录尝试失败而被锁定进而无法登录数据库的用户,利用 root_auto_lock_time(仅根登录策略)和 auto_unlock_time 登录策略选项,可以确定其自动解锁时间段。这些选项在 CREATE LOGIN POLICY 和 ALTER LOGIN POLICY 语句中提供。 请参见用户帐户自动解锁。
系统过程 以下是为支持基于角色的安全而新增的系统过程:
sp_objectpermission 系统过程 此过程可针对授予指定对象、dbspace、角色或用户名的对象特权生成报告。要获得此系统过程,必须重建现有数据库。 请参见sp_objectpermission 系统过程。
sp_displayroles 系统过程 返回授予指定系统特权、系统角色、用户定义角色、用户名的所有角色,或者显示整个角色层次树。请参见sp_displayroles 系统过程。
sp_has_role 系统过程 返回过程调用者是否被授予指定系统特权或用户定义角色。请参见sp_has_role 系统过程。
sp_proc_priv 系统过程 返回运行过程所需要的系统特权的列表。请参见sp_proc_priv 系统过程。
sp_auth_sys_role_info 系统过程 返回以前版本 SQL Anywhere 的授权到其对应的兼容性角色的映射。请参见sp_auth_sys_role_info 系统过程。
sp_sys_priv_role_info 系统过程 返回系统特权到其基础系统角色的映射。请参见sp_sys_priv_role_info 系统过程。
数据库选项 以下是为支持基于角色的安全而新增的数据库选项:
min_role_admins 选项 设置角色所需的最少管理员数。请参见min_role_admins 选项。
db_publisher 选项 此选项存储数据库发布者的用户 ID。可以通过与其它数据库选项相同的方法对其进行设置,也可以用 GRANT PUBLISH 和 REVOKE PUBLISH 语句设置。请参见db_publisher 选项。
数据库服务器选项 以下数据库服务器选项的行为已进行更改,用以支持基于角色的安全:
-gu 数据库服务器选项 将值设置为 DBA 表示,只有具备 SERVER OPERATOR 特权的用户才能创建或删除数据库。请参见-gu 数据库服务器选项。
-gk 数据库服务器选项 将值设置为 DBA 表示,只有具备 SERVER OPERATOR 特权的用户才能用 dbstop 实用程序关闭数据库服务器。请参见-gk 数据库服务器选项。
-gd 数据库服务器选项 将值设置为 DBA 表示,只有具备 SERVER OPERATOR 特权的用户才能启动数据库。 请参见-gd 数据库服务器选项。
-gl 数据库服务器选项 将值设置为 DBA 表示,只有具备 LOAD ANY TABLE 或 ALTER ANY TABLE 特权的用户才能执行 LOAD 语句。用户必须具备 SELECT ANY TABLE 特权才能执行 UNLOAD 语句。请参见-gl 数据库服务器选项。
新增和更改的 SQL 语句 以下是为支持基于角色的安全而新增或更改的 SQL 语句:
GRANT 语句更改 GRANT 语句已进行增强,现允许授予角色和特权。请参见GRANT 语句。
用于授予授权、权限和组里成员资格的旧语法仍受支持,但不建议使用。请参见GRANT 语句(权限和组)(不建议使用)。
REVOKE 语句更改 REVOKE 语句已进行增强,用以撤消角色和特权。请参见REVOKE 语句。
用于授予授权、权限和组里成员资格的旧语法仍受支持,但不建议使用。请参见REVOKE 语句(权限和组)(不建议使用)。
新 CREATE ROLE 语句 创建或替换角色、将用户转换为角色或管理角色对应的角色管理员。请参见CREATE ROLE 语句。
新 ALTER ROLE 语句 将兼容性角色(以 SYS_AUTH_ 开头的角色)迁移到用户定义角色,然后删除该兼容性角色。请参见ALTER ROLE 语句。
新 DROP ROLE 语句 从数据库中删除用户定义角色或兼容性角色,或者将用户扩展角色转换为普通用户。请参见DROP ROLE 语句。
新 GRANT ROLE SYS_RUN_REPLICATION_ROLE 语句 此语句用于授予运行复制所需要的角色。请参见GRANT ROLE SYS_RUN_REPLICATION_ROLE 语句 [MobiLink] [SQL Remote]。
新 GRANT ROLE SYS_REPLICATION_ADMIN_ROLE 语句 此语句用于授予管理复制所需要的角色。请参见GRANT ROLE SYS_REPLICATION_ADMIN_ROLE 语句 [MobiLink] [SQL Remote]。
GRANT PUBLISH 和 REVOKE PUBLISH 语句更改 以前,GRANT PUBLISH 和 REVOKE PUBLISH 语句在 ISYSAUTHORITY 系统表中更新数据库发布者信息。而现在,作为基于角色安全的一部分,数据库发布者用户 ID 作为 db_publisher 数据库选项进行存储。现在,这些语句更新的是 db_publisher 数据库选项的值,而不是更新 ISYSUSERAUTHORITY。请参见GRANT PUBLISH 语句 [SQL Remote]和REVOKE PUBLISH 语句 [SQL Remote]。
对分类目录进行的更改 以下是为支持基于角色的安全而对分类目录进行的更改:更改是针对分类目录表进行的,但由于客户只能访问相应的系统视图,因此一并介绍视图方面的内容。
分类目录项 | 更改 |
---|---|
ISYSROLEGRANT 系统表/SYSROLEGRANT 系统视图 |
新增。存储角色成员资格和成员资格类型的相关信息 |
SYSROLEGRANTS 统一视图 | 新增。与 SYSROLEGRANT 相同,但包含额外两列:role_name 和 grantee_name。 |
ISYSROLEGRANTEXT 系统表/SYSROLEGRANTEXT 系统视图 |
新增。存储 SET USER 和 CHANGE PASSWORD 特权的语法扩展。 |
SYSGROUP 兼容性视图 | 本视图此前为系统视图,但现在为兼容性视图。 |
SYSGROUPS 兼容性视图 | 本视图此前为统一视图,但现在为兼容性视图。 |
SYSUSER 系统视图 | 新增列:dual_password |
SYSUSERAUTHORITY 兼容性视图(不建议使用) | 此视图已从系统视图更改为兼容性视图。基础系统表 ISYSAUTHORITY 已删除,但出于兼容性目的保留了该视图。 |
SYSTABLEPERM 系统视图 | 新增列:loadauth 和 truncateauth |
SYSTABAUTH 统一视图 | 新增列:loadauth 和 truncateauth |
为支持角色和特权而对 SQL Anywhere 插件做出的更改 为支持基于角色的新安全模型,Sybase Central 进行了大量更改。请注意,在 Sybase Central 中执行特权性数据库任务—如创建表—所需的特权可能比使用 SQL 语句要多。这是因为 Sybase Central 会执行填充文件夹(视图、用户等)以进行显示等额外的特权性任务。
如对执行某项任务所需的特权不确定,请参阅介绍如何在 Sybase Central 中执行任务的相关文档。
SQL Anywhere 现在提供 LDAP 用户验证支持。下表列出了为支持 LDAP 用户验证而增加或更改的内容。 请参见LDAP 验证。
根登录策略更改 为支持 LDAP 用户验证,为根登录策略添加了以下登录策略选项:
请参见根登录策略。
系统过程 为支持 LDAP 用户验证,添加或增强了以下系统过程:
新增列(user_dn、user_dn_cached_at、password_change_state、password_change_first_user、password_change_second_user)通过 sa_get_user_status 系统过程报告。
SQL 语句 为支持 LDAP 用户验证,添加了以下 SQL 语句:
为支持 LDAP 用户验证,增强了以下 SQL 语句:
对分类目录进行的更改 为支持 LDAP 用户验证,对分类目录进行了以下更改:
SYSLDAPSERVER 系统视图(新增) SYSLDAPSERVER 系统视图中的每一行分别对应在数据库中配置的 LDAP SERVER 对象。 请参见SYSLDAPSERVER 系统视图。
SYSUSER 系统视图 SYSUSER 系统视图新增两个与 LDAP 用户验证有关的列:user_dn 和 user_dn_cached_at。 请参见SYSUSER 系统视图。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |