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

 

用于执行特许操作的系统过程的更改

在 16.0 以前版本的数据库中,在执行用于执行特许操作的系统过程时,缺省情况下将使用所有者的特权来执行,通常是 dbo 或 SYS,而且这些系统过程定义中的 SQL SECURITY 子句会设置为 DEFINER(所有者)。

在版本 16.0 中,缺省情况下这些系统过程的 SQL SECURITY 子句将设置为 INVOKER。也就是说,具有调用者的特权就可以执行特许操作,而不必具有定义者的特权。

现在,创建或升级数据库时,可以指定执行特许操作的系统过程将使用所有者的特权执行还是使用调用者的特权执行。为实现此选择,已对 CREATE DATABASE 语句、ALTER DATABASE UPGRADE 语句、初始化实用程序 (dbinit) 和升级实用程序 (dbupgrad) 进行增强。

对于新数据库,如果未进行指定,则将选择使用调用者的特权执行这些系统过程。而在升级时,如果未进行指定,则缺省设置为升级数据库时的设置。

 另请参见