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 语句查看所有已有的数据库的定义的权限。 (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |