ホームページ >データベース >mysql チュートリアル >mysqlにはどのような権限があるのでしょうか?
mysql 権限には次のものが含まれます: 1. USAGE (データベース ログインにのみ使用でき、操作は実行できません) 2. SELECT (テーブルの内容を表示するための SELECT ステートメントの使用を許可します) 3. super (許可します)一連のデータベース管理コマンドの実行 4. プロセス、プロセス情報の表示を可能にする 5. シャットダウンなど
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql の各種権限:
1、用途: 接続 (ログイン) 権限、ユーザーを作成すると、使用権限が自動的に付与されます (デフォルトで付与されます)。
この権限はデータベースへのログインにのみ使用でき、いかなる操作も実行できません。また、この権限を再利用することはできません。REVOKE を使用しても、ユーザー権限は削除できません。
grant usage on *.* to 'iap'@'%' identified by 'iap123';
2. データ クラスの権限
2.1. SELECT: テーブルの内容を表示するには SELECT を使用します。権限は SELECT クエリを実行できます。
grant select on testdb.* to 'iap'@'%';
2.2、挿入
insert into…..values….
を使用するには、挿入権限が必要です。 2.3、更新
##更新テーブルを使用するには、更新権限が必要です。update shop set price=3.5 where article=0001 and dealer='A';
2.4, delete
delete from ….where….(テーブル内のレコードを削除)## を使用するには、削除権限が必要です。
#2.5. ファイル (特定のデータベース用ではないため、*.* を使用する必要があります)ファイル権限は、サーバー ホスト上のファイル権限を指します。アクセス、データベース ユーザーは、ファイル アクセス許可を使用して、select ..into outfile、load data infile... 操作のみを実行できます。
ただし、管理者以外のアカウントにファイル、プロセス、スーパー アクセス許可を付与しないでください。重大なセキュリティリスク、隠れた危険。
grant file on *.* to 'iap'@'%';
ファイルをエクスポート:
select... into outfile 'ファイル パス'
インポートおよびエクスポートのパス設定を表示:##secure-file-priv'%sec%' のような変数を表示 ;
パラメータは、制限 load data、select ... outfile、およびload_fileに使用されます。 () 指定されたディレクトリが渡されるディレクトリ。 具体的な変更方法: https://blog.csdn.net/weixin_39631030/article/details/79873936
'絶対ファイルパス'インポート ファイル:
データ infile の読み込み
into table テーブル名;具体的な使用法: https://www.cnblogs.com/darange/p/10508714.html
3. 構造権限
#3.1. CREATE: テーブルを作成する権限。 create table を使用するには、作成権限が必要です。
grant create on testdb.* to 'iap'@'%'
3.2、alter
には、alter table を使用するための変更権限が必要です。
grant alter on testdb.* to 'iap'@'%'
例: alter table shopmodify Dealer char(15);
3.3、index
インデックス権限が必要です、 [create |drop] を実行するには、indexgrant index on testdb.* to 'iap'@'%';
createindex
ix_shop on shop(article);使用するには、drop 権限が必要です。dropindexix_shop on shop;
##3.4.drop
grant drop on testdb.* to 'iap'@'%';drop データベース
db_name;
create を使用する前に、一時テーブルを作成する権限が必要です。一時テーブル。テーブルを削除 table_name;
ビューを削除 view_name;
インデックスを削除 インデックス名;
3.5. 一時テーブルの作成 (これはテーブルではなくテーブルであることに注意してください)
-- 授予iap@localhost 创建临时表权限 grant create temporary tables on testdb.* to 'iap'@'%'; --例 : iap 用户登录,创建临时表 create temporary table tt1(id int);3.6、ビューの表示
必须拥有show view权限,才能执行show create view。
grant show view on testdb.* to 'iap'@'%'; show create view view_shop;
3.7、CREATE ROUTINE:创建procedure或function的权限。
如果用户有create routine 权限那么他就可以创建procedure | function 。
create {procedure|function}
如果用户创建了procedure | function 那么mysql 自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:
grant create routine on testdb.* to 'iap'@'%';
3.8、alter routine
必须具有alter routine的权限,才可以使用
{alter |drop} {procedure|function}
-- 授予 testdb数据库 修改/删除 存储过程/函数的权限 grant alter routine on testdb.* to 'iap'@'%';
3.9、excute
执行存在的Functions、Procedures。
grant execute on testdb.* to 'iap'@'%';
3.10 、create view
必须有create view的权限,才可以使用 create view 创建视图。
-- 授予'iap'@'localhost'创建视图权限 grant create view on testdb.* to 'iap'@'%'; -- 例 : 'iap'@'localhost' 登录,创建v_shop视图 create view v_shop as select price from shop;
3.11 、event
event : 允许查询,创建,修改,删除MySQL事件.
事件适用范围:对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理。
详细说明:https://www.cnblogs.com/langtianya/p/5445528.html
例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表。
3.12 、Trigger
Trigger权限代表允许创建,删除,执行,显示触发器的权限.
4、管理权限
4.1、grant option
拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)
grant grant option on testdb.* to 'iap'@'%';
4.2、super
Super权限代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令, change master to创建复制关系命令,以及create/alter/drop server等命令,修改全局变量的SET语句
mysql> grant super on *.* to p1@localhost; mysql> purge master logs before ‘mysql-bin.000006′;
4.3、 process
Process权限代表允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令
通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。
show PROCESSLIST
另外,管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*
grant super on *.* to p1@localhost;
4.4、Shutdown
shutdown权限代表允许关闭数据库实例,执行语句包括 : mysqladmin shutdown.
4.5、 show database
通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。
对于iap@%t用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:
4.6、reload
必须拥有reload权限,才可以执行flush [tables | logs | privileges]
reload 是 administrative 级的权限,即 server administration;
这类权限包括: create user, process, reload, replication client, replication slave, show databases, shutdown, super
这类权限的授权不是针对某个数据库的,因此须使用on *.* 来进行
grant reload on *.* to 'iap'@'%'
4.7、lock tables
必须拥有lock tables权限,才可以使用lock tables
grant lock tables on testdb.* to 'iap'@'localhost';
lock tables a1 read;
unlock tables;
4.8、references
有了references权限,用户就可以将其它表的一个字段作为某一个表的外键约束。
4.9、replication client
Replication client权限代表允许执行show master status, show slave status, show binary logs命令
4.10、replication slave
レプリケーション スレーブ許可とは、スレーブ ホストがこのユーザーを介してマスターに接続して、マスター/スレーブ レプリケーション関係を確立できることを意味します。スレーブ サーバーを表示し、マスター サーバーからバイナリ ログを読み取ることができます。
*.* のレプリケーション スレーブを 'iap'@'%' に許可します;
スレーブ ホストを表示します;
binlog イベントを表示します;
4.11. ユーザーの作成
ユーザーの作成権限は、ユーザーの作成、変更、削除、名前変更を許可する権限を表します。
5. 権限タイプ テーブル
5.1. データベース権限を付与する場合、 テーブル:
権限名 | ユーザーテーブルのフィールドに対応します | 説明 |
---|---|---|
SELECT | Select_priv | SELECT ステートメントを使用して特定のデータベース内のすべてのテーブルとビューにアクセスする権限がユーザーに付与されていることを示します。 |
INSERT | Insert_priv | INSERT ステートメントを使用して特定のデータベース内のすべてのテーブルにデータ行を追加する権限がユーザーに付与されていることを示します。 |
DELETE | Delete_priv | DELETE ステートメントを使用して、特定のデータベース内のすべてのテーブルからデータ行を削除する権限がユーザーに付与されていることを示します。 |
UPDATE | Update_priv | は、特定のデータベース内のすべてのデータ テーブルの値を更新するために UPDATE ステートメントを使用する権限をユーザーに付与することを意味します。 |
REFERENCES | References_priv | は、特定のデータベース内のテーブルを指す外部キーを作成する権限がユーザーに付与されていることを示します。 |
CREATE | Create_priv | CREATE TABLE ステートメントを使用して特定のデータベースに新しいテーブルを作成することをユーザーに許可する権限を表します。 |
ALTER | Alter_priv | ALTER TABLE ステートメントを使用して特定のデータベース内のすべてのデータ テーブルを変更する権限がユーザーに付与されていることを示します。 |
SHOW VIEW | Show_view_priv | 特定のデータベース内の既存のビューのビュー定義を表示する権限がユーザーに付与されていることを示します。 |
CREATE ROUTINE | Create_routine_priv | は、特定のデータベースに対してストアド プロシージャとストアド関数を作成する権限をユーザーに付与することを意味します。 |
ALTER ROUTINE | Alter_routine_priv | は、データベース内の既存のストアド プロシージャとストアド関数を更新および削除する権限がユーザーに付与されていることを示します。 |
INDEX | Index_priv | は、特定のデータベース内のすべてのデータ テーブルのインデックスを定義および削除する権限がユーザーに付与されていることを示します。 |
DROP | Drop_priv | は、特定のデータベース内のすべてのテーブルとビューを削除する権限をユーザーに付与することを意味します。 |
CREATE TEMPORARY TABLES | Create_tmp_table_priv | 特定のデータベースに一時テーブルを作成する権限がユーザーに付与されていることを示します。 |
CREATE VIEW | Create_view_priv | は、特定のデータベースに新しいビューを作成する権限をユーザーに付与することを意味します。 |
EXECUTE ROUTINE | Execute_priv | は、特定のデータベースのストアド プロシージャおよびストアド関数を呼び出す権限がユーザーに付与されていることを示します。 |
LOCK TABLES | Lock_tables_priv | は、特定のデータベースの既存のデータ テーブルをロックする権限がユーザーに付与されていることを示します。 |
Super_priv | は、上記のすべての権限/スーパー権限を意味します |
#5.2. テーブル権限を付与する場合、 を次の値として指定できます:
ユーザー テーブル内の対応するフィールド | 説明 | |
---|---|---|
Select_priv | ユーザーに SELECT ステートメントを使用して次のことを行う権限を与えます。特定のテーブルにアクセスする 権限 | |
Insert_priv | INSERT ステートメントを使用して特定のテーブルに行を追加する権限をユーザーに付与します | |
Delete_priv | DELETE ステートメントを使用して特定のテーブルから行を削除する権限をユーザーに付与します | |
Drop_priv | データ テーブルを削除する権限をユーザーに付与します | |
Update_priv | ユーザーにUPDATE ステートメントを使用する権限 特定のデータ テーブルを更新する権限 | |
Alter_priv | ALTER TABLE ステートメントを使用してデータを変更する権限をユーザーに付与しますtable | |
References_priv | 特定のデータ テーブルを参照する外部キーを作成する権限をユーザーに付与します | |
Create_priv | 特定の名前を使用してデータ テーブルを作成する権限をユーザーに付与します | |
Index_priv | テーブルにインデックスを定義する権限をユーザーに付与します | ##ALL または ALL PRIVILEGES または SUPER |
すべての権限名 |
以上がmysqlにはどのような権限があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。