加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql如何添加权限

发布时间:2023-06-02 13:07:30 所属栏目:MySql教程 来源:
导读:本篇内容介绍了“mysql如何增加权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mysql中可用

本篇内容介绍了“mysql如何增加权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

mysql中可用GRANT语句为用户增加权限,语法“GRANT 权限类型 ON 权限级别值 TO user [IDENTIFIED BY '密码'] [WITH子句];”;其中参数“user”表示用户账户,格式为“'用户名'@'主机名'”。

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

在 MySQL 中,可以利用GRANT 语句为用户授权,增加权限。

其语法格式如下:

GRANT priv_type [(column_list)] ON database.table

TO user [IDENTIFIED BY 'password']

[WITH with_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> GRANT SELECT,INSERT ON *.*

    -> TO 'testUser'@'localhost'

    -> IDENTIFIED BY 'testPwd'

    -> WITH GRANT OPTION;

Query OK, 0 rows affected, 1 warning (0.05 sec)

使用 SHOW GRANTS 语句查询用户 testUser 的权限,如下所示。

扩展知识:权限类型说明

1)授予数据库权限时,<权限类型>可以指定为以下值:

权限名称对应user表中的字段说明SELECTSelect_priv表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。INSERTInsert_priv表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。DELETEDelete_priv表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。

2) 授予列权限时,<权限类型>的值只能指定为 SELECT、INSERT 和 UPDATE,同时权限的后面需要加上列名列表 column-list。

3) 最有效率的权限是用户权限。

授予用户权限时,<权限类型>除了可以指定为授予数据库权限时的所有值之外,还可以是下面这些值:

CREATE USER:表示授予用户可以创建和删除新用户的权限。

SHOW DATABASES:表示授予用户可以使用 SHOW DATABASES 语句查看所有已有的数据库的定义的权限。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!