数据库安全管理(数据库控制语言DCL:GRANT\REVOKE)

MySQL的所有user存放在mysql.user这张表里面

MySQL 运⾏时,请遵循以下准则:

1.不要给⽤户(应⽤)配置超级⽤户权限,授权最⼩化
2.不要在数据库中存储明⽂密码
3.不要使⽤较为简单的字符密码
4.不允许⾮授信任主机使⽤扫描 数据库跟谁打交道 业务层java 公司堡垒机开放

⽤户账户管理

1.连接MySQL本地数据库:mysql -u root -p

2.连接远程数据库:

参数更多
-P //指定连接远程数据库端⼝[默认3306]
-h //指定连接远程数据库地址[默认localhost]
-u //指定连接远程数据库账户[默认root]
-p //指定连接远程数据库密码[默认密码为空]
-e //执⾏mysql数据库sql指令
-S //指定mysql数据库Socket

3.创建用户

CREATE USER 'username'@'127.0.0.0' IDENTIFIIED BY 'password';

4.给用户赋权

GRANT 权限1,权限2,权限3 ON 数据库名.* TO 'username'@'hostname';

5.删除用户 方法1:关键字DROP USER 方法2:从表mysql.user中delete from

方法1:DROP USER 'username'@'password';

方法2:delete from mysql.user where user='wing' and host='localhost';

6.修改用户密码 方法1:mysqladmin命令 方法2 :UPDATE mysql.user表

方法1:mysqladmin -uroot -p'password' password 'newpassword' 注意password前面没有-

方法2:update mysql.user set authentication_string=password('Wing@123') where user='root' and host='localhost';

7.访问权限系统

mysql权限表的四个层级:1.全局级权限表mysql.user 2.数据库级权限表mysql.db 3.表级权限表mysql.tables_priv 4.列级权限表mysql.columns_priv

下面是标记权限表的实例

赋权语句:grant 权限列表 on 库名.表名 to '⽤户名'@'客户端主机' [identified by ' 密码' with option 参数];

翻译:给哪个主机上的哪个用户赋予哪个数据库上哪张表的哪些权限

1.权限列表
all 所有权限(不包括授权权限)
单独授权 select,update,insert,delete
2.库名表名
. 所有库下的所有表 Global level
wing.* 针对 wing 库下的所有表 Database level
wing.student 针对 wing 库下的 student 表 Table level
SELECT (id),INSERT (name,age) ON wing.t1 针对 wing 库下⾯ t1 表的字段 Column level
3.客户端主机
localhost 指定本机
10.1.106.70 指定具体主机
10.1.106.0 ⽹段的所有主机
10.1.106.% ⽹段的所有主机
% 指定所有主机
4.with参数
参数
GRANT OPTION 授权选项
MAX_QUERIES_PER_HOUR 定义每⼩时允许执⾏的查询数
MAX_UPDATES_PER_HOUR 定义每⼩时允许执⾏的更新数
MAX_CONNECTIONS_PER_HOUR 定义每⼩时可以建⽴的连接数
MAX_USER_CONNECTIONS 定义单个⽤户同时可以建⽴的连接数

posted @ 2025-06-04 20:33  wewnehwhe  阅读(9)  评论(0)    收藏  举报