mysql如何增加权限
本篇内容介绍了“mysql如何增加权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
mysql中可用GRANT语句为用户增加权限,语法“GRANT 权限类型 ON 权限级别值 TO user [IDENTIFIED BY '密码'] [WITH子句];”;其中参数“user”表示用户账户,格式为“'用户名'@'主机名'”。
本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
在 MySQL 中,可以利用GRANT 语句为用户授权,增加权限。
其语法格式如下:
GRANTpriv_type[(column_list)]ONdatabase.tableTOuser[IDENTIFIEDBY'password'][WITHwith_option[with_option]...]
其中:
priv_type 参数表示权限类型;
columns_list 参数表示权限作用于哪些列上,省略该参数时,表示作用于整个表;
database.table 用于指定权限的级别;
user 参数表示用户账户,由用户名和主机名构成,格式是“'username'@'hostname'”;
IDENTIFIED BY 参数用来为用户设置密码;
password 参数是用户的新密码。
MySQL 中可以授予的权限有如下几组:
列权限,和表中的一个具体列相关。例如,可以使用 UPDATE 语句更新表 students 中 name 列的值的权限。
表权限,和一个具体表中的所有数据相关。例如,可以使用 SELECT 语句查询表 students 的所有数据的权限。
数据库权限,和一个具体的数据库中的所有表相关。例如,可以在已有的数据库 mytest 中创建新表的权限。
用户权限,和 MySQL 中所有的数据库相关。例如,可以删除已有的数据库或者创建一个新的数据库的权限。
对应地,在 GRANT 语句中可用于指定权限级别的值有以下几类格式:
*:表示当前数据库中的所有表。
*.*:表示所有数据库中的所有表。
db_name.*:表示某个数据库中的所有表,db_name 指定数据库名。
db_name.tbl_name:表示某个数据库中的某个表或视图,db_name 指定数据库名,tbl_name 指定表名或视图名。
db_name.routine_name:表示某个数据库中的某个存储过程或函数,routine_name 指定存储过程名或函数名。
TO 子句:如果权限被授予给一个不存在的用户,MySQL 会自动执行一条 CREATE USER 语句来创建这个用户,但同时必须为该用户设置密码。
在 MySQL 中,拥有 GRANT 权限的用户才可以执行 GRANT 语句.
示例:
使用 GRANT 语句创建一个新的用户 testUser,密码为 testPwd。用户 testUser 对所有的数据有查询、插入权限,并授予 GRANT 权限。
mysql>GRANTSELECT,INSERTON*.*->TO'testUser'@'localhost'->IDENTIFIEDBY'testPwd'->WITHGRANTOPTION;QueryOK,0rowsaffected,1warning(0.05sec)
使用 SHOW GRANTS 语句查询用户 testUser 的权限,如下所示。
扩展知识:权限类型说明
1)授予数据库权限时,<权限类型>可以指定为以下值:
2) 授予表权限时,<权限类型>可以指定为以下值:
3) 授予列权限时,<权限类型>的值只能指定为 SELECT、INSERT 和 UPDATE,同时权限的后面需要加上列名列表 column-list。
4) 最有效率的权限是用户权限。
授予用户权限时,<权限类型>除了可以指定为授予数据库权限时的所有值之外,还可以是下面这些值:
CREATE USER:表示授予用户可以创建和删除新用户的权限。
SHOW DATABASES:表示授予用户可以使用 SHOW DATABASES 语句查看所有已有的数据库的定义的权限。
“mysql如何增加权限”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。