[前][次][番号順一覧][スレッド一覧]

mysql:5321

From: kohara <kohara <skohara@xxxxxxxxxx>>
Date: Fri, 05 Apr 2002 16:00:00 +0900
Subject: [mysql 05321] Re: データベースの操作権限について

小原です。加藤さん返答ありがとうございます。

>  こんにちは、加藤です。
> 
>   mysql データベースのテーブル一覧を見たところ、tables_priv と
>  いうテーブルがあります。また、マニュアルの『4.3.1 GRANT と REVOKE
>  構文』を見たところできるようです。
> 
>   レンタルサーバのように、複数ユーザがいて、それぞれ違うアプリ
>  ケーション / システムを利用するのであればデータベースを分けて
>  しまった方がいいと思いますが。

今回権限の設定は以下のようにしています。

-userテーブルの権限を全て無効
revoke all privileges on *.* from yamada;

-dbテーブルに対し全ての権限を付与
grant all privileges on UserDB1.* to yamada@localhost identified 'pass';

⇒これによりyamada@localhostはUserDB1にのみアクセス可能。


上記マニュアル「4.3.1 GRANT と REVOKE 構文」には以下の記述があります。
----------------------------------------------------------------------
Database レベル 
Database 権限は与えられたデータベース内の全てのテーブルに適用します。
これらの権限は mysql.db テーブルと mysql.host テーブル内に格納されます。

Table レベル 
Table 権限は与えられたテーブル内の全てのフィールドに適用します。これら
の権限は mysql.tables_priv テーブル内に格納されます。 
----------------------------------------------------------------------
一見データベース内のテーブルのみに適用されるかのように受取れますが、
実際にはデータベースとテーブルの両方に適用されます。つまりデータベース
も削除することができるということです。操作ミスを防ぐためにデータベース
は削除できないようにしたいです。

table_privはデータベース内のテーブルに権限を付与できると思うのですが、
実際にユーザーに開放するときはテーブルは存在しない状態で渡します。で
すので、明示的にテーブル名を指定してgrantを発行することができないのです。

はて困った・・・。




[前][次][番号順一覧][スレッド一覧]

      5317 2002-04-05 12:52 [kohara <skohara@xxxx] データベースの操作権限について          
      5320 2002-04-05 14:41 ┗[Tomohiro 'Tomo-p' KA]                                       
->    5321 2002-04-05 16:00  ┗[kohara <skohara@xxxx]                                     
      5322 2002-04-05 16:17   ┗[Tomohiro 'Tomo-p' KA]                                   
      5323 2002-04-05 16:50    ┗[kohara <skohara@xxxx]