ホームページ > データベース > mysql チュートリアル > mysql学習における権限管理について詳しく解説

mysql学習における権限管理について詳しく解説

迷茫
リリース: 2017-03-26 13:24:28
オリジナル
1561 人が閲覧しました

データベース権限の意味:

データベース内のビジネスデータが権限のないユーザーによって不正に盗まれないようにするには、データベースへの訪問者にさまざまな制限を課す必要があります。データベースセキュリティには主に以下が含まれます。これら 3 つの制御手段。ユーザー ID 認証の最初の方法は、パスワード、磁気カード、指紋などの技術であり、法的な身分証明書を持つ人のみがデータベースにアクセスできます。 2 番目のタイプのアクセス許可制御。ロールごとにデータベースへのアクセス許可が異なります。データベース オブジェクト とそのアクセス許可は、ロールごとに設定する必要があります。 3つ目は、データベースを管理するための管理システムを構築し、それに対応するルールや規制を策定することで、データが適切なタイミングで適切に運用されるようにすることです。 mysqlユーザー権限のチェックは2つの段階に分かれています

1. mysqlサーバーとのリンクを確立できるかどうか2. 特定の操作権限(select up

date

など)があるかどうか.)

1、mysqlサーバーとのリンクを確立します

mysqlサーバーはユーザーがリンクを確立できるかどうかをどのように確認しますか1.ユーザーとしてのあなたが誰であるかを確認します

2.

3. パスワード passw

ord

mysql へのリンク メソッド: C:UsersPC003>mysql -h192.168.6.223 -uroot -pjalja パラメータの説明: -h: リンクを確立する場所

-u: user

-p: Password

mysql> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *CFAFE434FB0E5D64538901E668E1EACD077A54DF |
| root | %         | *CFAFE434FB0E5D64538901E668E1EACD077A54DF |
+------+-----------+-------------------------------------------+
ログイン後にコピー

host=localhost デフォルトのホストをリンクに使用できることを示します (C:UsersPC003>mysql -uroot -pjalja, C:UsersPC003>mysql -hlocalhost -uroot -pjalja, C:UsersPC003> mysql -h127.0.0.1 -uroot -pjalja)

host =% は、サーバーがサーバーが配置されているローカル エリア ネットワーク (パブリック ネットワーク) 内のすべてのホストとのリンクを確立できることを意味します。このメソッドは運用環境では安全ではありません。環境

host=192.168.6.224 は、サーバーが 192.168.6.224 ホストとのリンクのみを確立できることを意味します C :UsersPC003>mysql -h192.168.6.223 -uroot -pjalja


host の変更方法:

mysql> update user set host='192.168.6.223' where user ='root'
ログイン後にコピー

my SQL(&G) ; フラッシュ権限; リフレッシュ権限 (変更されたデータがメモリ内にあるため、各ユーザーの権限に関連する操作には更新が必要です)

パスワードの変更:

mysql> update user set password=password('111111') where user='root';
mysql> flush privileges;
ログイン後にコピー

2. mysql で権限を確認する方法

mysql のライブラリ。ライブラリの下の user テーブルはユーザーが存在するかどうかを確認し、db テーブルはユーザーがどのライブラリにアクセスできるかを確認し、tables_priv テーブルはユーザーがそれらのテーブルに対してどのような操作権限を持っているかを確認します。

ユーザーの作成と認可:

「パスワード」で識別される user@'host' に *.* の [権限 1、権限 2] を付与します 共通の権限: すべて、作成、ドロップ、挿入、削除、 update,select

例: ls ユーザーにすべてのライブラリとすべてのテーブルに対するすべてのアクセス許可を付与し、この LAN とこのセグメント内の任意のホストからログインできるようにします。

mysql> grant all on *.* to 'ls'@'192.168.6.%' identified by '111111';
ログイン後にコピー

このユーザーを使用してログインします: C:UsersPC003>mysql -h192.168.6.223 -uls -p111111;

ls ユーザーの特定の権限を表示します:

mysql> select * from  mysql.user where user='ls' \G;
*************************** 1. row ***************************
                  Host: 192.168.6.%
                  User: ls
              Password: *FD571203974BA9AFE270FE62151AE967ECA5E0AA
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: N
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin:
 authentication_string: NULL
ログイン後にコピー

権限の回復: ls のすべての権限を取り消します

mysql> ls@'192.168.6.%' から *.* をすべて取り消します:

特定のライブラリに権限を付与します:

mysql> ';Grant ls ユーザーは、ブログ データベースに対するすべての権限を持ちます。 このように、ls ユーザーには user テーブルの権限がありません。db レベルの権限チェックが実行されます

mysql> select * from  mysql.db where user='ls' 
\G;*************************** 1. row ***************************
                 Host: 192.168.6.%
                   Db: blog                 
                   User: ls
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
         Execute_priv: Y
           Event_priv: Y
         Trigger_priv: Y
ログイン後にコピー

ls ユーザーのすべての権限を回復し、特定のテーブルに権限を付与します。 ls ユーザーのユーザー ブログ ライブラリ内のユーザー テーブルに crud 権限を付与します

mysql> revoke all on *.* from ls@'192.168.6.%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> grant insert,update,select,delete on blog.user to ls@'192.168.6.%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
ログイン後にコピー

この方法では、ls ユーザーには db レベルの権限がありません。このとき、tables_priv レベルでの権限チェックが実行されます。 :

mysql> select * from  mysql.tables_priv where user='ls' 
\G;*************************** 1. row ***************************
       Host: 192.168.6.%
         Db: blog       
         User: ls
 Table_name: user
    Grantor: root@localhost
  Timestamp: 2017-02-09 14:35:38
 Table_priv: Select,Insert,Update,DeleteColumn_priv:1 row in set (0.00 sec)
ログイン後にコピー
mysql 権限制御プロセス:


注: Mysql 権限チェックは、データの特定の列に対して正確である可能性があります。

以上がmysql学習における権限管理について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート