共计 6049 个字符,预计需要花费 16 分钟才能阅读完成。
本篇内容主要讲解“mysql 中的权限有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“mysql 中的权限有哪些”吧!
mysql 权限有:1、USAGE,只能用于数据库登录,不能执行任何操作;2、SELECT,允许使用 SELECT 语句查看表内容的权限;3、super,允许执行一系列数据库管理命令;4、process,允许查看进程信息;5、Shutdown 等。
本教程操作环境:windows7 系统、mysql8 版本、Dell G3 电脑。
mysql 各种权限:
1、USAGE:连接(登录)权限,建立一个用户,就会自动授予其 usage 权限(默认授予)。
该权限只能用于数据库登录,不能执行任何操作,且该权限不能被回收,即使使用 REVOKE 也不能删除用户权限。
grant usage on *.* to iap @ % identified by iap123
2、数据类下权限
2.1、SELECT:使用 SELECT 查看表内容的权限,拥有此权限才能执行 SELECT 查询。
grant select on testdb.* to iap @ %
2.2、insert
必须有 insert 的权限,才可以使用 insert into ….. values….
2.3、update
必须有 update 的权限,才可以使用 update table。
update shop set price=3.5 where article=0001 and dealer= A
2.4、delete
必须有 delete 的权限,才可以使用 delete from ….where….(删除表中的记录)
2.5、file (不是针对某个数据库的,因此须使用 on *.* 来进行)
file 权限指的是对服务器主机上文件的访问,数据库用户拥有 file 权限才可以执行 select ..into outfile,load data infile…操作.
但是不要把 file, process, super 权限授予管理员以外的账号,这样存在严重的安全隐患。
grant file on *.* to iap @ %
导出文件: select … into outfile 文件路径
查看导入、导出路径设置:show variables like %sec%
secure-file-priv 参数是用来限制 load data, select … outfile, and load_file() 传到哪个指定目录的。
具体修改方法:https://blog.csdn.net/weixin_39631030/article/details/79873936
导入文件: load data infile 文件绝对路径 into table 表名;
具体使用方法:https://www.cnblogs.com/darange/p/10508714.html
3、结构权限
3.1、CREATE:创建表的权限。必须有 create 的权限,才可以使用 create table。
grant create on testdb.* to iap @ %
3.2、alter
必须有 alter 的权限,才可以使用 alter table。
grant alter on testdb.* to iap @ %
例:alter table shop modify dealer char(15);
3.3、index
必须拥有 index 权限,才能执行 [create |drop] index
grant index on testdb.* to iap @ %
create index ix_shop on shop(article);
drop index ix_shop on shop;
3.4、drop
必须有 drop 的权限,才可以使用
grant drop on testdb.* to iap @ %
drop database db_name;
drop table table_name;
drop view view_name;
drop index index_name;
3.5、create temporary tables(注意这里是 tables,不是 table)
必须有 create temporary tables 的权限,才可以使用 create temporary tables.
-- 授予 iap@localhost 创建临时表权限
grant create temporary tables on testdb.* to iap @ %
-- 例 : iap 用户登录,创建临时表
create temporary table tt1(id int);
3.6、show view
必须拥有 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
Replication slave 权限代表允许 slave 主机通过此用户连接 master 以便建立主从复制关系,可以查看从服务器,从主服务器读取二进制日志。
grant replication slave on *.* to iap @ %
show slave hosts;
show binlog events;
4.11、Create user
Create user 权限代表允许创建、修改、删除、重命名 user 的权限。
5、权限类型 表格
5.1、授予数据库权限时,权限类型 表格:
权限名称对应 user 表中的字段说明 SELECTSelect_priv 表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。INSERTInsert_priv 表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。DELETEDelete_priv 表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。UPDATEUpdate_priv 表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。REFERENCESReferences_priv 表示授予用户可以创建指向特定的数据库中的表外键的权限。CREATECreate_priv 表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。ALTERAlter_priv 表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。SHOW VIEWShow_view_priv 表示授予用户可以查看特定数据库中已有视图的视图定义的权限。CREATE ROUTINECreate_routine_priv 表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。ALTER ROUTINEAlter_routine_priv 表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。INDEXIndex_priv 表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。DROPDrop_priv 表示授予用户可以删除特定数据库中所有表和视图的权限。CREATE TEMPORARY TABLESCreate_tmp_table_priv 表示授予用户可以在特定数据库中创建临时表的权限。CREATE VIEWCreate_view_priv 表示授予用户可以在特定数据库中创建新的视图的权限。EXECUTE ROUTINEExecute_priv 表示授予用户可以调用特定数据库的存储过程和存储函数的权限。LOCK TABLESLock_tables_priv 表示授予用户可以锁定特定数据库的已有数据表的权限。ALL 或 ALL PRIVILEGES 或 SUPERSuper_priv 表示以上所有权限 / 超级权限
5.2、授予表权限时,权限类型 可以指定为以下值:
权限名称对应 user 表中的字段说明 SELECTSelect_priv 授予用户可以使用 SELECT 语句进行访问特定表的权限 INSERTInsert_priv 授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限 DELETEDelete_priv 授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限 DROPDrop_priv 授予用户可以删除数据表的权限 UPDATEUpdate_priv 授予用户可以使用 UPDATE 语句更新特定数据表的权限 ALTERAlter_priv 授予用户可以使用 ALTER TABLE 语句修改数据表的权限 REFERENCESReferences_priv 授予用户可以创建一个外键来参照特定数据表的权限 CREATECreate_priv 授予用户可以使用特定的名字创建一个数据表的权限 INDEXIndex_priv 授予用户可以在表上定义索引的权限 ALL 或 ALL PRIVILEGES 或 SUPERSuper_priv 所有的权限名
5.3、授予列权限
授予列权限时,权限类型 的值只能指定为 SELECT、INSERT 和 UPDATE,同时权限的后面需要加上列名列表 column-list。
5.4、最有效率的权限是用户权限。
授予用户权限时,权限类型 除了可以指定为授予数据库权限时的所有值之外,还可以是下面这些值:
CREATE USER:表示授予用户可以创建和删除新用户的权限。
SHOW DATABASES:表示授予用户可以使用 SHOW DATABASES 语句查看所有已有的数据库的定义的权限。
到此,相信大家对“mysql 中的权限有哪些”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!