OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    間接的な権限付与

    最終更新日:2026-04-09 02:53:56  更新
    シェア
    このページの内容
    権限の間接付与
    前提条件
    背景
    操作例
    関連ドキュメント

    折りたたみ

    シェア

    ユーザーの権限には、直接付与された権限と、ロールを付与した後にそのロールを通じて間接的に取得する権限が含まれます。ほとんどの操作に必要な権限は、直接付与されたものであっても、ロールを通じて間接的に持つものであっても、条件を満たすことができます。

    権限の間接付与

    ユーザーまたは他のユーザーにロールを付与することで、そのロールに含まれる権限が間接的に付与されます。

    注意

    ユーザーは常に直接付与された権限を使用できますが、ロールを通じて間接的に取得した権限を使用できるとは限りません。ユーザーは現在のセッションで有効化されているロールの権限のみを使用できます。ロールの有効化の詳細な手順については、ロールの有効化を参照してください。

    前提条件

    他のユーザーまたはロールにロールを付与する際、現在のユーザーが付与されるロールを所有していること、およびADMIN OPTION権限を持っていることが必要です。現在のユーザーが持つ権限に関する操作の詳細については、ユーザー権限の確認を参照してください。

    背景

    現在、ユーザーtest1が存在し、すでにemployeeロールが付与されているとします。employeeロールに含まれる権限を確認するステートメントは次のとおりです:

    obclient [oceanbase]> SHOW GRANTS FOR employee;
    

    結果は次のとおりです:

    +--------------------------------------------------+
    | Grants for employee@%                            |
    +--------------------------------------------------+
    | GRANT USAGE ON *.* TO 'employee'                 |
    | GRANT UPDATE, SELECT ON `dbtest`.* TO 'employee' |
    +--------------------------------------------------+
    2 rows in set
    

    現在のユーザーにdeveloperロールがあります。developerロールに含まれる権限を確認するステートメントは次のとおりです:

    obclient [oceanbase]> SHOW GRANTS FOR developer;
    

    結果は次のとおりです:

    +------------------------------------------+
    | Grants for developer@%                   |
    +------------------------------------------+
    | GRANT ALTER SYSTEM ON *.* TO 'developer' |
    +------------------------------------------+
    1 row in set
    

    操作例

    現在、ロール developer 内のすべての操作権限をユーザー test1 に付与する必要があります。次の方法で間接的な権限付与を実現できます。

    • ユーザーにロールを付与する

      1. 現在のユーザーがロール developer をユーザー test1 に付与します。

        obclient [oceanbase]> GRANT developer TO test1;
        

        ユーザーが後でそのロールを再付与できるようにしたい場合は、WITH ADMIN OPTION 句を追加できます。

        obclient [oceanbase]> GRANT developer TO test1 WITH ADMIN OPTION;
        
      2. SHOW GRANTS ... USING ステートメントを使用して、ユーザーが developer から取得した権限を確認します。

        obclient [oceanbase]> SHOW GRANTS FOR test1 USING developer;
        

        結果は次のとおりです:

        +-----------------------------------------------------+
        | Grants for test1@%                                  |
        +-----------------------------------------------------+
        | GRANT ALTER SYSTEM ON *.* TO 'test1'                |
        | GRANT `developer`@`%`,`employee`@`%` TO `test1`@`%` |
        +-----------------------------------------------------+
        2 rows in set
        
    • ユーザーのロールにロールを付与する

      1. ロール developer をロール employee に付与します。

        obclient [oceanbase]> GRANT developer TO employee;
        
      2. SHOW GRANTS ... USING ステートメントを使用して、ユーザー test1 が employee から取得した権限を確認します。

        obclient [oceanbase]> SHOW GRANTS FOR test1 USING employee;
        

        結果は次のとおりです:

        +-----------------------------------------------+
        | Grants for test1@%                            |
        +-----------------------------------------------+
        | GRANT ALTER SYSTEM ON *.* TO 'test1'          |
        | GRANT UPDATE, SELECT ON `dbtest`.* TO 'test1' |
        | GRANT `employee`@`%` TO `test1`@`%`           |
        +-----------------------------------------------+
        3 rows in set
        

        クエリ結果から、ユーザー test1 が employee ロールから ALTER SYSTEM 権限を取得したことがわかります。次に、employee に付与されたロールや権限を確認します。

        obclient [(none)]> SHOW GRANTS FOR employee;
        

        結果は次のとおりで、ALTER SYSTEM 権限が developer ロールから取得されたことがわかります。

        +--------------------------------------------------+
        | Grants for employee@%                            |
        +--------------------------------------------------+
        | GRANT USAGE ON *.* TO 'employee'                 |
        | GRANT UPDATE, SELECT ON `dbtest`.* TO 'employee' |
        | GRANT `developer`@`%` TO `employee`@`%`          |
        +--------------------------------------------------+
        3 rows in set
        

    関連ドキュメント

    ロールに関するその他の操作については、ロール管理を参照してください。

    前のトピック

    ロールの削除
    最後

    次のトピック

    ユーザー権限の確認
    次
    このページの内容
    権限の間接付与
    前提条件
    背景
    操作例
    関連ドキュメント