授权 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

授权

在授权过程中,数据库管理员会获取有关经过身份验证的用户的授权 ID 的信息。授权 ID 表示用户可以执行哪些数据库操作,包括用户可以访问哪些数据库对象。这些权限在 Db2 中显式声明,允许用户执行特定的操作。

对于授权 ID,可以在不同级别授予权限:

  • 权限-直接向授权 ID 授予主要权限。

  • 次要权限 — 向授权 ID 所属的群组和角色授予次要权限。

  • 公共 — 公共级别是一个特殊的 Db2 群组,代表组织中的每个人。

  • 上下文敏感-这些权限被授予受信任的上下文角色。

Db2 权限级别

Db2 管理以下级别的权限:

  • 实例或系统,级别:SYSADMSYSCTRLSYSMAINTSYSMON

    • 数据库级别:DBADMSQLADM(EXPLAIN)、WLMADM)、SECADM (ACCESSCTRL)、DATAACCESS

      • 架构级别:SCHEMAADM(LOAD)、ACCESSCTRLDATAACCES S

      • 其他架构级权限

Database privilege levels hierarchy showing instance, database, and schema levels with associated permissions.

Db2 支持以下额外的架构级权限:

  • SELECTIN允许用户从架构中定义的所有表或视图中检索行。

  • INSERTIN允许用户插入行并在架构中定义的所有表或视图上运行该IMPORT实用程序。

  • UPDATEIN允许用户对架构中定义的所有表或可更新视图运行该语Update句。

  • DELETEIN允许用户从架构中定义的所有表或可更新视图中删除行。

  • EXECUTEIN允许用户运行架构中定义的所有用户定义函数、方法、过程、包或模块。

  • CREATEIN允许用户在架构中创建对象。

  • ALTERIN允许用户更改架构中的对象。

  • DROPIN允许用户从架构中删除对象。

授权 ID

Db2 授权 ID 由以下内容组成:

  • 授权 ID 类型

    • 个人用户 (U)

    • 群组 (G)

    • 角色 (R)

    • 公开 (P)

  • 授权 ID 值

授权 ID(可以与其关联的权限和权限)用于识别和检查 Db2 授权。

以下是 Db2 中常用的主要授权 ID 术语:

  • 系统授权 ID — 用于进行任何初始授权检查(例如在CONNECT处理期间检查CONNECT权限)的授权 ID。

  • 会话授权 ID — 在CONNECT处理期间执行初始检查之后,用于任何会话授权检查的授权 ID。要查看会话授权 ID 的当前值,请使用SESSION_USER特殊寄存器。

  • 语句授权 ID — 用于 SQL 语句的授权要求 IDs 的授权 ID(以及组或角色的关联辅助授权)。如果适用,这也用于确定对象所有权。它可能有所不同,具体取决于 SQL 语句的类型和发布该语句的上下文。

权限和特权是通过明确的机制(例如GRANTREVOKE声明)或隐含的机制(例如通过对象所有权获得的特权)获得的。它们也可以通过多个处理环境临时获取。例如,您已被授予访问视图的权限,这隐式地授予您访问该视图定义中的对象的权限。此外,对软件包的EXECUTE权限将允许您访问该包中的任何静态 SQL。获得临时权限和特权的另一种方法是使用可信上下文

可信上下文

可信上下文是一个数据库对象,它定义了数据库与外部应用程序服务器或其他数据库服务器之间的信任关系。信任关系基于以下信任属性:

  • IP 地址

  • 系统授权 ID

  • 数据通信的加密级别

如果连接与定义的可信上下文对象中的信任属性相匹配,则会建立可信连接。可信连接有两种类型:

  • 隐式可信连接-隐式可信连接允许用户继承在该可信连接定义范围之外他们无法使用的角色。连接的会话授权 ID 被赋予在可信上下文定义中声明的角色的临时成员资格。

    下图显示了一个隐式可信连接的示例,其中只允许来自一个 IP 地址的连接。

     

    ""
    1. 该角色dbconnrole已创建并被授予与数据库的连接。可信上下文ctximpl是基于authidABC使用 IP 地址10.10.10.1和默认角色的连接创建的dbconnrole

    2. 用户ABC可以从 IP 地址连接到数据库10.10.10.1

    3. 用户ABC无法从 IP 地址进行连接10.10.10.2

  • 显式可信连接-显式可信连接允许受信任的应用程序服务器或其他 Db2 数据库服务器以有效的方式在现有连接上切换当前用户 ID。应用程序服务器通过明确的信任请求建立原始连接。建立信任后,应用服务器可以向数据库服务器发出请求,要求更改任何新工作单元的会话授权 ID。用于执行初始连接请求的 ID 只需要服务器上的CONNECT权限。

    当您的中间层服务器需要代表多个用户对各种数据库对象(例如表)具有不同访问模式的用户发出数据库请求时,显式可信连接会很有用。在数据库服务器上创建的可信上下文对象允许中间层服务器建立与数据库的显式可信连接,然后将该连接的当前用户 ID 切换到相应的用户 ID,而无需向数据库服务器重新进行身份验证。根据为用户授权 ID 对数据库对象授予的权限,用户可以继续执行操作,同时保留执行任何特定任务的用户的真实身份。

    下图显示了一个显式可信连接的示例USER1,其中USER2、和USER3全部通过连接authidAPPID

    ""
    1. 可信上下文ctxexpl是基于使用authidAPPID用户的发件人 IP 地址USER1USER2、和10.10.10.1的连接创建的USER3

    2. 用户连接到中间层服务器。

    3. 可信连接是使用建立的APPID