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 服务器 - 数据库管理 » 用户和数据库安全 » 用户安全性(角色和特权) » 升级到基于角色的安全性

 

授权、权限和组会发生什么情况?

SQL Anywhere 16.0 引入了基于角色的安全模型。以前有授权、权限、对象级权限和组,而现在有角色、系统特权、对象级特权和用户扩展角色。

注意

SQL Anywhere 16.0 数据库服务器可与 16.0 以前版本的数据库一起使用。一起使用时,会为 16.0 以前版本的数据库提供完全向后兼容性,并且数据库的安全模型不变。

在 16.0 以前版本的数据库中,授权是数据库级权限。例如,拥有 BACKUP 权限的用户能够备份数据库。一些授权也与对象级权限捆绑。例如,拥有 PROFILE 权限的用户能够执行应用程序分析和数据库跟踪任务,而这些任务涉及使用在其它情况下不可用的系统过程。您不能创建新授权、变更构成授权的权限或删除授权。您能够授予管理权限 (WITH GRANT),但不能将授予范围限制为仅限成为管理员。

现在,角色在功能上替代了权限,并增加了以下好处:能够创建新角色、变更角色构成的特权以及删除角色。转换为角色和特权意味着,您能够对想要授予用户的特权进行更精细的控制,同时能够更方便地将角色和特权授予其他用户。您也可以仅将对角色的管理权限授予用户,这意味着该用户能够授予和撤消角色,但不能执行基础特权。

在 16.0 以前版本的数据库中,权限允许您创建、修改、查询、使用或删除数据库对象(如表、视图和用户)。例如,您可能对表具有 SELECT 权限。

现在,特权在功能上替代了权限,并增加了以下好处:特权数量大大超过权限数量。对于每个可在数据库对象上执行的特许操作,都有一个可授予的特权。您可以将特权单独授予用户,也可以将角色授予用户。术语权限 并未退出使用;但已稍做更改。以前,权限一词是指可授予的能力。现在,权限一词指的是评估结果,可通过该结果判断能否执行某一操作。例如,如果您是表的所有者,或您具有 ALTER ANY TABLE 系统特权,那么您有权限 变更表。

在 16.0 以前版本的数据库中,是一个或多个用户的集合,这些用户的授权和权限由组级别上的设置所决定。将组状态授予一个用户,然后将该组中的成员资格授予其他用户。

现在,组范例使用用户扩展角色来实现。如果某一用户拥有一组特权,您想要将这组特权授予其他用户,可以将该用户扩展为用户扩展角色,然后将该角色授予其他用户。组范例也可通过创建独立角色来实现。独立角色具有您想要授予用户的角色和特权,但不与用户 ID 关联。

升级 16.0 以前版本的数据库时,升级过程自动将现有授权、权限和组层次转换为等效的角色、特权和用户扩展角色层次。对于每个 16.0 以前版本的权限,都有一个等效的兼容性角色。可在数据库中轻松识别这些角色,因为它们的名称均以 SYS_AUTH 开头。兼容性角色中包含 16.0 以前版本的用户执行以前使用权限执行的操作时所需的系统特权。

 另请参见