ALTER PERMISSION 语句

ALTER PERMISSION 语句用于更改当前服务器上存在的行权限。

调用 ALTER PERMISSION

此语句可嵌入应用程序中或者以交互方式发出。 这是一个可执行语句,只有在DYNAMICRULES RUN行为生效时才能动态准备。 更多信息,请参阅授权ID和动态SQL

授权 ALTER PERMISSION

以下定义的特权集必须包含以下权限:

  • SECADM 权限

权限设置:

如果语句嵌入到应用程序中,则权限集就是软件包所有者所拥有的权限。 如果语句是动态准备的,则权限集是进程的每个授权ID和角色所拥有的权限集的并集。

语法 ALTER PERMISSION

阅读语法图跳过可视化语法图ALTER PERMISSION权限名称 ENABLEDISABLEREGENERATEUSINGAPPLICATION COMPATIBILITY应用兼容性级别

描述 ALTER PERMISSION

权限名称
标识允许更改。 名称必须标识当前服务器上存在的行权限。 该名称不得标识默认行权限,该权限由 Db2 隐式创建。
ENABLE
指定启用行访问控制中的行权限。 如果当前未为表启用行访问控制,则当为表启用行访问控制时,行权限将生效。 更改开始使用该子句或关键字可能会使依赖于目标对象的软件包或通过级联效应依赖于相关对象的软件包失效。 请参阅使软件包失效的更改更改结束

无法启用带有再生错误的行许可。 要清除行权限的状态,必须删除行权限,然后重新创建,并修改定义。

如果行访问控制中的行权限已设置为启用,则忽略ENABLE。

DISABLE
指定在行访问控制中禁用行权限。 如果当前未对表启用行访问控制,则当对表启用行访问控制时,行权限将保持无效。 更改开始使用该子句或关键字可能会使依赖于目标对象的软件包或通过级联效应依赖于相关对象的软件包失效。 请参阅使软件包失效的更改更改结束

如果行访问控制中的行权限已设置为禁用,则忽略“禁用”选项。

REGENERATE
指定是否要重新生成行许可权。 目录中的行权限定义将被使用,任何现有的授权和依赖关系都将保留。 在行权限定义中引用的用户定义函数必须与行权限创建时解析的函数解析为相同的安全UDF。

更改开始一般来说,REGENERATE 关键字仅用于特定情况,如例程或对象的隐式再生失败,或 Db2 维护要求对对象或例程进行再生。 有关详细信息,请参阅何时重新生成 Db2 数据库对象和例程更改结束

更改开始USING APPLICATION COMPATIBILITY 应用兼容级更改结束
更改开始FL 500 规定对象将根据 applcompat 级别的应用程序兼容性规则重新生成。 如果ALTER语句包含任何需要更高应用程序兼容性的语法、语义或选项,则该语句将失败。

如果省略了“应用程序兼容性”选项,则再生功能将使用适用 SYSIBM.SYSENVIRONMENT 目录表行的APPLCOMPAT值。

可以指定以下应用兼容级别值:
更改开始V12R1M5nn更改结束
更改开始

与已识别的 Db2 12 功能级别的行为兼容。 例如, V12R1M510 指定与最高可用 Db2 12 功能级别兼容。 必须激活同等或更高的功能级别。

更改开始有关每个应用程序兼容性级别中可用的新功能的信息,请参阅 V12R1Mnnn 应用程序兼容性级别更改结束

提示: 更改开始对于使用数据服务器客户端或驱动程序访问 Db2 for z/OS® 的应用程序,可能需要额外的程序准备步骤来提高应用程序兼容性级别。 有关详细信息,请参阅为数据服务器客户端和驱动程序设置应用程序兼容性级别更改结束
更改结束
更改开始V12R1更改结束
更改开始Db2 12 功能 500 级的行为兼容。 该值与指定 V12R1M500 的结果相同。更改结束
V11R1
Db2 11 新功能模式的行为兼容。 迁移到 Db2 12 后,此值与指定 V12R1M100 具有相同的结果。 欲了解更多信息,请访问 V11R1 应用程序兼容性级别
V10R1
DB2® 10 新功能模式的行为兼容。 更多信息,请参阅 V10R1 应用程序兼容性级别
更改结束

备注 ALTER PERMISSION

包裹失效:
根据指定的条款和关键字以及其他因素,此语句可能会使所有依赖于目标对象的程序包失效,有时还会通过级联效应影响其他相关对象。 更多信息,请参阅 “导致套餐失效的变更 ”。
无效缓存的动态 SQL 语句:
此语句可能会使依赖于目标对象的缓存动态 SQL 语句失效,有时还会通过级联效应影响其他相关对象。 更多信息,请参阅 “动态语句缓存失效 ”。
应用 Db2 维护:
Db2 维护影响行权限的生成时,可能需要重新生成行权限以确保其仍然有效。 更多信息,请参阅 《 Db2 数据库对象和例程的更新时间》。

如果重新生成行权限成功,则目录表中的行权限状态将设置为空白。

如果无法成功重新生成行权限,则会返回错误。 行权限的更新状态被设置为错误。 要清除行权限的状态,必须删除行权限,然后重新创建,并修改定义。 如果尚未禁用,则可以禁用行权限。 对于行访问控制表,禁用行权限将无效。

当数据操作语句引用表时,如果任何已启用的行权限存在再生错误,则语句将返回错误。

例子 ALTER PERMISSION

示例 1
启用权限 P1。
ALTER PERMISSION P1 ENABLE;
示例 2
重新生成权限 P1。
ALTER PERMISSION P1 REGENERATE;