このトピックでは、SQLステートメントを実行して、ApsaraDB RDS for MySQLインスタンスのデータベースのテーブル、ビュー、またはフィールドを管理する権限をアカウントに付与する方法について説明します。 Alibaba Cloudアカウントを使用している場合、RDSインスタンスのすべてのタイプのデータを管理する権限があります。
前提条件
特権アカウントが作成されます。 詳細については、「ApsaraDB RDS For MySQLインスタンスのデータベースとアカウントの作成」をご参照ください。手順
- RDSインスタンスに接続します。 詳細については、「クライアントまたはCLIを使用したApsaraDB RDS For MySQLインスタンスへの接続」をご参照ください。
- SQL文を実行してアカウントを作成し、そのアカウントにターゲットデータベースのテーブル、ビュー、およびフィールドを管理する権限を付与します。説明 作成されたアカウントには、ApsaraDB RDSコンソールで承認済みデータベースを表示する権限がありません。
- アカウントを作成し、そのアカウントにデータベースのテーブルを管理する権限を付与します。
ユーザー 'を作成する <作成するアカウントのユーザー名>' @ '% 'IDENTIFIED BY' <作成するアカウントのパスワード> '; 承認プロセス、複製スレーブ、複製クライアントON * * へ '<アカウントのユーザー名>' @ '%'; すべての特権を付与する '<管理するデータベースの名前>'.'<管理するテーブルの名前>' to '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'help_topic' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'func' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'time_zone' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'slow_log' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'time_zone_transition 'TO' <アカウントのユーザー名> '@' % '; GRANT SELECT ON 'mysql'.'proc' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'help_category' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'help_relation' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'help_keyword' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'general_log' TO '<アカウントのユーザー名>' @ '%'; GRANT SELECT ON 'mysql'.'time_zone_leap_second 'TO' <アカウントのユーザー名> '@' % '; GRANT SELECT ON 'mysql'.'time_zone_transition_type 'TO' <アカウントのユーザー名> '@' % '; GRANT SELECT ON 'mysql'.'time_zone_name 'TO' <アカウントのユーザー名> '@' % ';
例:
test01という名前のアカウントを作成し、そのアカウントにrds001データベースのtest100テーブルを管理する権限を付与するには、次のSQL文を実行します。
ユーザー 'test01' @ '% 'IDENTIFIED BY 'passwd' を作成します。承認プロセス、複製スラブ、複製クライアントON * * TO 'test01 @ '%'; 「rds001」ですべての特権を付与します。「test100」から「test01」 @ 「 % 」; GRANT SELECT ON 'mysql'.'help_topic' TO 'test01 @ '%'; GRANT SELECT ON 'mysql'.'func' TO 'test01 @ '%'; GRANT SELECT ON 'mysql'.'time_zone' TO 'test01 @ '%'; GRANT SELECT ON 'mysql'.'slow_log' TO 'test01 @ '%'; GRANT SELECT ON 'mysql'.'time_zone_transition 'TO 'test01 @' % '; GRANT SELECT ON 'mysql'.'proc' TO 'test01' @ '%'; GRANT SELECT ON 'mysql'.'help_category 'test01' @ '%'; GRANT SELECT ON 'mysql'.'help_relation' TO 'test01 @ '%'; GRANT SELECT ON 'mysql'.'help_keyword' TO 'test01 @ '%'; GRANT SELECT ON 'mysql'.'general_log' TO 'test01 @ '%'; GRANT SELECT ON 'mysql'.'time_zone_leap_second 'TO 'test01 @' % '; GRANT SELECT ON 'mysql'.'time_zone_transition_type 'TO 'test01 @' % '; GRANT SELECT ON 'mysql'.'time_zone_name 'TO 'test01 @' % ';
説明 コードの3行目のtest100をアスタリスク (*) に変更した場合、test01ユーザーにApsaraDB RDSコンソールで認可データベースを表示する権限を付与します。 - 作成したアカウントに、データベースからビューを照会する権限を付与します。
<データベース名>.<ビュー名> から <アカウントのユーザー名> を選択します。
例:
test01 ユーザーに rds001 データベースから view_test1 ビューをクエリする権限を与えるには、次の SQL 文を実行します。
rds001.view_test1でtest01にselectを付与します。
- 作成したアカウントに、データベースのテーブル内のフィールド名を更新または照会する権限を付与します。
grant update (<作成したアカウントを使用して更新するフィールド名>) on table <フィールド名を更新するテーブルの名前> to <作成したアカウントのユーザー名>; ----- 作成したアカウントにデータベースからテーブルのフィールド名を更新する権限を付与します。 grant select (<作成されたアカウントを使用して照会するフィールド名>) on table <フィールド名を更新するテーブルの名前> to <作成されたアカウントのユーザー名>; ----- 作成されたアカウントにデータベースからテーブル内のフィールド名を照会する権限を付与します。
例:
test01 ユーザーに testtable テーブルの testid フィールドを更新する権限を与えるには、次の SQL 文を実行します。
テーブルtesttableの更新 (testd) をtest01に付与します。
データ管理 (DMS) でSQL文を実行することもできます。 詳細については、「MySQLデータベースのユーザー権限の管理」をご参照ください。 - アカウントを作成し、そのアカウントにデータベースのテーブルを管理する権限を付与します。