欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于MySQL数据库的增、删、查、改操作(六)

程序员文章站 2022-05-08 17:29:37
...

原文地址:https://www.toutiao.com/a6592057225248768525/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1535010047&app=news_article&utm_source=mobile_qq&iid=41590152322&utm_medium=toutiao_ios&group_id=6592057225248768525

8.16 用户管理AND权限管理

关于MySQL数据库的增、删、查、改操作(六)

 

关于MySQL数据库的增、删、查、改操作(六)

-- root密码重置

1. 停止MySQL服务

2. [Linux] /usr/local/mysql/bin/safe_mysqld --skip-grant-tables &

[Windows] mysqld --skip-grant-tables

3. use mysql;

4. UPDATE `user` SET PASSWORD=PASSWORD("密码") WHERE `user` = "root";

5. FLUSH PRIVILEGES;

用户信息表:mysql.user

-- 刷新权限

FLUSH PRIVILEGES;

-- 增加用户

CREATE USER 用户名 IDENTIFIED BY [PASSWORD] 密码(字符串)

- 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。

- 只能创建用户,不能赋予权限。

- 用户名,注意引号:如 'user_name'@'192.168.1.1'

- 密码也需引号,纯数字密码也要加引号

- 要在纯文本中指定密码,需忽略PASSWORD关键词。要把密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD

-- 重命名用户

RENAME USER old_user TO new_user

-- 设置密码

SET PASSWORD = PASSWORD('密码') -- 为当前用户设置密码

SET PASSWORD FOR 用户名 = PASSWORD('密码') -- 为指定用户设置密码

-- 删除用户

DROP USER 用户名

-- 分配权限/添加用户

GRANT 权限列表 ON 表名 TO 用户名 [IDENTIFIED BY [PASSWORD] 'password']

- all privileges 表示所有权限

- *.* 表示所有库的所有表

- 库名.表名 表示某库下面的某表

GRANT ALL PRIVILEGES ON `pms`.* TO 'pms'@'%' IDENTIFIED BY 'pms0817';

-- 查看权限

SHOW GRANTS FOR 用户名

-- 查看当前用户权限

SHOW GRANTS; 或 SHOW GRANTS FOR CURRENT_USER; 或 SHOW GRANTS FOR CURRENT_USER();

-- 撤消权限

REVOKE 权限列表 ON 表名 FROM 用户名

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 用户名 -- 撤销所有权限

-- 权限层级

-- 要使用GRANT或REVOKE,您必须拥有GRANT OPTION权限,并且您必须用于您正在授予或撤销的权限。

全局层级:全局权限适用于一个给定服务器中的所有数据库,mysql.user

GRANT ALL ON *.*和 REVOKE ALL ON *.*只授予和撤销全局权限。

数据库层级:数据库权限适用于一个给定数据库中的所有目标,mysql.db, mysql.host

GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤销数据库权限。

表层级:表权限适用于一个给定表中的所有列,mysql.talbes_priv

GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤销表权限。

列层级:列权限适用于一个给定表中的单一列,mysql.columns_priv

当使用REVOKE时,您必须指定与被授权列相同的列。

-- 权限列表

ALL [PRIVILEGES] -- 设置除GRANT OPTION之外的所有简单权限

ALTER -- 允许使用ALTER TABLE

ALTER ROUTINE -- 更改或取消已存储的子程序

CREATE -- 允许使用CREATE TABLE

CREATE ROUTINE -- 创建已存储的子程序

CREATE TEMPORARY TABLES -- 允许使用CREATE TEMPORARY TABLE

CREATE USER -- 允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。

CREATE VIEW -- 允许使用CREATE VIEW

DELETE -- 允许使用DELETE

DROP -- 允许使用DROP TABLE

EXECUTE -- 允许用户运行已存储的子程序

FILE -- 允许使用SELECT...INTO OUTFILE和LOAD DATA INFILE

INDEX -- 允许使用CREATE INDEX和DROP INDEX

INSERT -- 允许使用INSERT

LOCK TABLES -- 允许对您拥有SELECT权限的表使用LOCK TABLES

PROCESS -- 允许使用SHOW FULL PROCESSLIST

REFERENCES -- 未被实施

RELOAD -- 允许使用FLUSH

REPLICATION CLIENT -- 允许用户询问从属服务器或主服务器的地址

REPLICATION SLAVE -- 用于复制型从属服务器(从主服务器中读取二进制日志事件)

SELECT -- 允许使用SELECT

SHOW DATABASES -- 显示所有数据库

SHOW VIEW -- 允许使用SHOW CREATE VIEW

SHUTDOWN -- 允许使用mysqladmin shutdown

SUPER -- 允许使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections。

UPDATE -- 允许使用UPDATE

USAGE -- “无权限”的同义词

GRANT OPTION -- 允许授予权限

8.17 维护数据库

关于MySQL数据库的增、删、查、改操作(六)

 

8.18 其他

关于MySQL数据库的增、删、查、改操作(六)

1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符!

2. 每个库目录存在一个保存当前数据库的选项文件db.opt。

3. 注释:

单行注释 # 注释内容

多行注释 /* 注释内容 */

单行注释 -- 注释内容 (标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、换行等))

4. 模式通配符:

_ 任意单个字符

% 任意多个字符,甚至包括零字符

单引号需要进行转义 '

5. CMD命令行内的语句结束符可以为 ";", "G", "g",仅影响显示结果。其他地方还是用分号结束。delimiter 可修改当前对话的语句结束符。

6. SQL对大小写不敏感

7. 清除已有语句:c