mysql使用参数指定用户_mysql-用户账号及权限管理

用户账号管理

添加用户

使用create创建用户

语法格式:

CREATE USER [ IDENTIFIED BY [ PASSWORD ] ‘password‘ ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] ‘password‘ ]]

例:

1.CREATE USER ‘username‘@‘localhost‘ IDENTIFIED BY ‘passwd‘;

使用insert新建用户

语法格式:

INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES (‘hostname‘, ‘username‘, PASSWORD(‘password‘), ‘‘, ‘‘, ‘‘);

例:

1.INSERT INTO mysql.user(Host,User,authentication_string,ssl_cipher,x509_issuer,x509_subject) VALUES (‘localhost‘,‘test‘,PASSWORD(‘passwd‘),‘‘,‘‘,‘‘);

2.FLUSH PRIVILEGES;

使用GRANT新建用户

语法格式:

GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] ‘password‘]

priv_type 参数表示新用户的权限;

database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;

user 参数指定新用户的账号,由用户名和主机名构成;

IDENTIFIED BY 关键字用来设置密码;

password 参数表示新用户的密码。

例:

1.GRANT SELECT ON *.* TO ‘test‘@localhost IDENTIFIED BY ‘passwd‘;

修改用户

修改用户名

语法格式:

RENAME USER TO

:系统中已经存在的 MySQL 用户账号。

:新的 MySQL 用户账号。

RENAME USER 语句用于对原有的 MySQL 用户进行重命名。

若系统中旧账户不存在或者新账户已存在,该语句执行时会出现错误。

使用 RENAME USER 语句,必须拥有 mysql 数据库的 UPDATE 权限或全局 CREATE USER 权限。

例:

RENAME USER ‘test1‘@‘localhost‘ TO ‘test02‘@‘localhost‘;

修改用户密码

使用set修改

语法格式:

SET PASSWORD FOR ‘username‘@‘hostname‘ = PASSWORD(‘newpasswd‘);

使用UPDATE修改

语法格式:

UPDATE mysql.user SET authentication_string = PASSWORD(‘newpasswd‘) WHERE User=‘username‘ AND Host=‘hostname‘;FLUSH PRIVILEGES;

例:

mysql>UPDATE mysql.user SET authentication_string = PASSWORD(‘newpasswd‘) WHERE User=‘test‘ AND Host=‘localhost‘;

mysql>FlUSH PRIVILEGES;

使用GRANT修改

语法格式:

GRANT USAGE ON *.* TO ‘user‘@‘hostname‘ IDENTIFIED BY ‘newpasswd‘;

例:

GRANT USAGE ON *.* TO ‘test‘@‘localhost‘ IDENTIFIED BY ‘newpasswd‘;

删除用户

使用DROP删除用户

语法格式:

DROP USER ‘username‘@‘host‘[,[email protected]]...

注意:用户的删除不会影响他们之前所创建的表、索引或其他数据库对象,MySQL不会记录是谁创建了这些对象

例:

DROP USER ‘test1‘@‘localhost‘;

使用DELETE删除用户

语法格式:

DELETE FROM mysql.user WHERE Host=‘hostname‘ AND User=‘username‘;

例:

DELETE FROM mysql.user WHERE Host=‘localhost‘ AND User=‘test1‘;

查看用户权限

使用SELECT查询

语法格式:

SELETE * FROM ‘username‘@‘hostname‘;

注意:

1.新建用户只有登录权限,没有任何其它权限,不能查询user表

使用SHOW GRANTS FOR查询

SHOW GRANTS FOR ‘username‘@‘host‘; #查看指定用户的权限

SHOW GRANTS FOR CURRENT_USER; #查看当前用户的权限

用户权限管理

赋予权限

语法格式:

GRANT priv_type [(column_list)] ON database.table TO user [IDENTIFIED BY [PASSWORD] ‘password‘]

[, user[IDENTIFIED BY [PASSWORD] ‘password‘]] ...

[WITH with_option [with_option]...]

priv_type 参数表示权限类型;

columns_list 参数表示权限作用于哪些列上,省略该参数时,表示作用于整个表;

database.table 用于指定权限的级别;

user 参数表示用户账户,由用户名和主机名构成,格式是“‘username‘@‘hostname‘”;

IDENTIFIED BY 参数用来为用户设置密码;

password 参数是用户的新密码。

WITH 关键字后面带有一个或多个 with_option 参数。这个参数有 5 个选项,详细介绍如下:

GRANT OPTION:被授权的用户可以将这些权限赋予给别的用户;

MAX_QUERIES_PER_HOUR count:设置每个小时可以允许执行 count 次查询;

MAX_UPDATES_PER_HOUR count:设置每个小时可以允许执行 count 次更新;

MAX_CONNECTIONS_PER_HOUR count:设置每小时可以建立 count 个连接;

MAX_USER_CONNECTIONS count:设置单个用户可以同时具有的 count 个连接。

1.授予数据库权限时,可以指定为以下值

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表示以上所有权限/超级权限

2.授予表权限时,可以指定为以下值

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所有的权限名

例:

1. GRANT SELECT,INSERT ON *.* TO ‘test‘@‘localhost‘ IDENTIFIED BY ‘passwd‘ WITH GRANT OPTION;

回收权限

回收用户的某些特定权限

语法格式:

REVOKE priv_type [(column_list)]... ON database.table FROM user [, user]...

priv_type 参数表示权限的类型;

column_list 参数表示权限作用于哪些列上,没有该参数时作用于整个表上;

user 参数由用户名和主机名构成,格式为“username‘@‘hostname‘”。

例:

REVOKE SELECT,DROP ON *.* FROM ‘test‘@‘localhost‘;

回收特定用户的所有权限

语法格式:

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

REVOKE 语法和 GRANT 语句的语法格式相似,但具有相反的效果

要使用 REVOKE 语句,必须拥有 MySQL 数据库的全局 CREATE USER 权限或 UPDATE 权限

例:

REVOKE ALL PRIVILEGES,GRANT OPTION FROM ‘test‘@‘localhost‘;

原文:https://www.cnblogs.com/wanwz/p/12875454.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值