データベース権限の意味:
データベース内のビジネスデータが権限のないユーザーによって不正に盗まれないようにするために、データベースの訪問者にさまざまな制限を課す必要があります。データベースのセキュリティ管理には主に 3 つの対策があります。 1 つ目は、パスワード、磁気カード、指紋、その他の技術を使用してユーザー ID 認証を行うことで、法的な身分証明書を持つユーザーだけがデータベースにアクセスできるようにすることです。 2 番目のタイプのアクセス許可制御では、ロールごとにデータベースへのアクセス許可が異なります。アクセスするデータベース オブジェクトとアクセス許可はロールごとに設定する必要があります。 3つ目は、データベースを管理するための管理システムを構築し、それに対応するルールや規制を策定することで、データが適切なタイミングで適切に運用されるようにすることです。
mysqlのユーザー権限のチェックは2つの段階に分かれています
1. mysqlサーバーとのリンクを確立できるかどうか
2. 特定の操作権限(更新の選択など)があるかどうか
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;
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.%';
のすべての権限を取り消します: 特定のライブラリに権限を付与します:
このように、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
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 権限チェックは、データの特定の列に対して正確である可能性があります。