ホームページ >データベース >mysql チュートリアル >mysqlにはどのような権限があるのでしょうか?

mysqlにはどのような権限があるのでしょうか?

青灯夜游
青灯夜游オリジナル
2022-04-12 14:04:0819065ブラウズ

mysql 権限には次のものが含まれます: 1. USAGE (データベース ログインにのみ使用でき、操作は実行できません) 2. SELECT (テーブルの内容を表示するための SELECT ステートメントの使用を許可します) 3. super (許可します)一連のデータベース管理コマンドの実行 4. プロセス、プロセス情報の表示を可能にする 5. シャットダウンなど

mysqlにはどのような権限があるのでしょうか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

mysql の各種権限:

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 'ファイル パス'

インポートおよびエクスポートのパス設定を表示:

'%sec%' のような変数を表示 ;

##secure-file-priv

パラメータは、制限 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] を実行するには、index

grant index on testdb.* to 'iap'@'%';

createindex

ix_shop on shop(article);

dropindexix_shop on shop;

##3.4.drop

使用するには、drop 権限が必要です。

grant drop on testdb.* to 'iap'@'%';
drop データベース

db_name;

テーブルを削除 table_name;

ビューを削除 view_name;

インデックスを削除 インデックス名;

3.5. 一時テーブルの作成 (これはテーブルではなくテーブルであることに注意してください)

create を使用する前に、一時テーブルを作成する権限が必要です。一時テーブル。

-- 授予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

执行存在的FunctionsProcedures。

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. データベース権限を付与する場合、 テーブル:

#ALL または ALL PRIVILEGES または SUPERSuper_priv は、上記のすべての権限/スーパー権限を意味します
権限名 ユーザーテーブルのフィールドに対応します 説明
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 は、特定のデータベースの既存のデータ テーブルをロックする権限がユーザーに付与されていることを示します。

#5.2. テーブル権限を付与する場合、 を次の値として指定できます:

権限名ユーザー テーブル内の対応するフィールド説明SELECTSelect_privユーザーに SELECT ステートメントを使用して次のことを行う権限を与えます。特定のテーブルにアクセスする 権限INSERTInsert_privINSERT ステートメントを使用して特定のテーブルに行を追加する権限をユーザーに付与しますDELETEDelete_privDELETE ステートメントを使用して特定のテーブルから行を削除する権限をユーザーに付与しますDROP Drop_privデータ テーブルを削除する権限をユーザーに付与しますUPDATEUpdate_privユーザーにUPDATE ステートメントを使用する権限 特定のデータ テーブルを更新する権限##ALTERREFERENCESCREATEINDEX##ALL または ALL PRIVILEGES または SUPERSuper_privすべての権限名

5.3. 列権限の付与

列権限を付与する場合、 の値は SELECT、INSERT、UPDATE としてのみ指定でき、権限は次のように指定する必要があります。その後に列名リスト column-list が続きます。

5.4. 最も効率的な権限はユーザー権限です。

ユーザー権限を付与する場合、データベース権限を付与するときに指定できるすべての値に加えて、 は次の値にすることもできます:

  • CREATE USER: 新しいユーザーを作成および削除する権限がユーザーに付与されていることを示します。
  • SHOW DATABASES: SHOW DATABASES ステートメントを使用して既存のすべてのデータベースの定義を表示する権限がユーザーに付与されていることを示します。

[関連する推奨事項: mysql ビデオ チュートリアル ]

Alter_priv ALTER TABLE ステートメントを使用してデータを変更する権限をユーザーに付与しますtable
References_priv 特定のデータ テーブルを参照する外部キーを作成する権限をユーザーに付与します
Create_priv 特定の名前を使用してデータ テーブルを作成する権限をユーザーに付与します
Index_priv テーブルにインデックスを定義する権限をユーザーに付与します

以上がmysqlにはどのような権限があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。