ホームページ > データベース > mysql チュートリアル > MySQL 学習権限管理のグラフィック コード例

MySQL 学習権限管理のグラフィック コード例

黄舟
リリース: 2017-03-04 15:00:12
オリジナル
1228 人が閲覧しました

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

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

mysqlのユーザー権限のチェックは2つの段階に分かれています

1. mysqlサーバーとのリンクを確立できるかどうか

2. 特定の操作権限(更新の選択など)があるかどうか

1. mysql サーバーとのリンク

mysql サーバーはユーザーがリンクを確立できるかどうかをどのように確認しますか

1. ユーザーとしてのユーザーは誰であるかを確認します

3. 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=% は、サーバーがそのまま同じホスト内に存在できることを意味します。LAN (パブリック ネットワーク) 内のすべてのホストがリンクを確立します。Host=192.168.6.224 は、サーバーがリンクを確立できることを意味します。 192.168.6.224 ホストとのリンクのみを確立します。C:UsersPC003>mysql -h192.168.6.223 -uroot -pjalja

ホストを変更する方法:

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

mysql>メモリ内に保存され、ユーザー権限関連の操作が実行されるたびに更新する必要があります)

パスワードの変更:

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

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

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

ユーザーの作成と認可:

「パスワード」で識別される user@'host' に *.* の [権限 1、権限 2] を付与します

共通の権限: すべて、作成、ドロップ、挿入、削除、 update,select例: ls ユーザーにすべてのライブラリとすべてのテーブルに対するすべてのアクセス許可を付与し、この LAN とこのセグメント内の任意のホストからログインできるようにします。

mysql> *.* のすべてを '111111' で識別される 'ls'@'192.168.6.%' に付与します;

このユーザーを使用してログインします: 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> revoke all on *.* from ls@'192.168.6.%';
ログイン後にコピー

のすべての権限を取り消します: 特定のライブラリに権限を付与します:

mysql > 助成金all on blog. * to ls@'192.168.6.%'; ユーザー 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 サイト (m.sbmmt.com) に注目してください。

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