数据库特权
为了让消息传递引擎使用其数据存储器,消息传递引擎使用的数据库用户标识必须有足够的特权允许消息传递引擎访问数据存储器表。如果希望消息传递引擎自动创建数据存储器表,那么消息传递引擎用户标识需要其他特权。
下表描述消息传递引擎用户标识访问数据存储器和创建数据存储器表时所需的数据库特权。
数据库管理系统 | 消息传递引擎使用数据存储器表所需的最低特权 | 消息传递引擎创建数据存储器表所需的附加特权 |
---|---|---|
DB2® | 消息传递引擎用户标识需要对表具有 SELECT、INSERT、UPDATE 和 DELETE 特权。 | 消息传递引擎用户标识需要对数据库具有 CREATETAB 权限,并且需要对表空间具有 USE 特权以及对模式具有 CREATEIN 特权。 |
Oracle | 消息传递引擎用户标识至少需要 SESSION 特权以连接至数据库。如果同一个用户标识既有数据存储器模式又有连接至数据库的消息传递引擎,那么消息传递引擎拥有足够特权处理表。否则,消息传递引擎需要对组成数据存储器的表具有 SELECT、INSERT、UPDATE 和 DELETE 对象特权,并且需要具有 DROP ANY TABLE 系统特权才能使用 TRUNCATE TABLE 语句。 | 消息传递引擎用户标识需要足够的特权在数据存储器模式中创建关系表和索引。消息传递引擎还需要该模式所有者的缺省表空间中的空间限额。 |
SQL 服务器 | 配置 SQL 服务器以用于 SQL 服务器和 Windows 认证。这会允许使用基于 SQL 服务器登录标识和密码的认证。 消息传递引擎用户标识可以是表的所有者,或者是具有足够权限来发出 TRUNCATE TABLE 语句的组成员。 | 消息传递引擎用户标识需要 CREATE TABLE 语句特权。 |
Sybase | 消息传递引擎用户标识可以是表的所有者,或者是具有足够权限来发出 TRUNCATE TABLE 语句的组成员。 | 消息传递引擎用户标识需要 CREATE TABLE 许可权。 |
Informix® | 消息传递引擎用户标识必须对数据库具有 CONNECT 特权。它还必须对表具有 SELECT、INSERT、UPDATE 和 DELETE 权限。 | 消息传递引擎用户标识必须对数据库具有 RESOURCE 特权。 |
Derby | 如果启用用户认证,那么您必须对消息传递引擎用户标识授予数据库访问权。 切记: 消息传递引擎生成的缺省数据库未启用安全机制。
|
您不需要其他特权。 |
如果未授予数据库用户标识 TRUNCATE TABLE 权限,那么可强制消息传递引擎删除个别行而不是截断表。为强制消息传递引擎删除个别行,请将 sib.msgstore.jdbcUseDeleteInsteadOfTruncateAtStartup 设置为 true 以充当消息传递引擎的定制属性。
注: 如果使用 DELETE 而不是 TRUNCATE,那么数据存储器中有许多非持久消息时,启动速度会变慢。