ホームページ >データベース >mysql チュートリアル >mysql学習における権限管理について詳しく解説
データベース権限の意味:
データベース内のビジネスデータが権限のないユーザーによって不正に盗まれないようにするには、データベースへの訪問者にさまざまな制限を課す必要があります。データベースセキュリティには主に以下が含まれます。これら 3 つの制御手段。ユーザー ID 認証の最初の方法は、パスワード、磁気カード、指紋などの技術であり、法的な身分証明書を持つ人のみがデータベースにアクセスできます。 2 番目のタイプのアクセス許可制御。ロールごとにデータベースへのアクセス許可が異なります。データベース オブジェクト とそのアクセス許可は、ロールごとに設定する必要があります。 3つ目は、データベースを管理するための管理システムを構築し、それに対応するルールや規制を策定することで、データが適切なタイミングで適切に運用されるようにすることです。 mysqlユーザー権限のチェックは2つの段階に分かれています
1. mysqlサーバーとのリンクを確立できるかどうか2. 特定の操作権限(select up
dateなど)があるかどうか.)
2.
3. パスワード passw
ordmysql へのリンク メソッド: 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 -pjaljamysql> 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 で権限を確認する方法
「パスワード」で識別される 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
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: Yls ユーザーのすべての権限を回復し、特定のテーブルに権限を付与します。 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学習における権限管理について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。