代码编织梦想

1. 用户

操作数据库的时候和使用Linux一样,不建议直接使用root,使用普通用户权限,这样更加安全

1.1 用户信息

mysql数据库下,这个库里面会自带各种表

image-20240519102641438

里面user表里面,就记录了用户信息

  • **host:**用户可以从哪个主机登录,localhost表明只能从本机登录
  • **user:**用户名
  • authentication_stringpassword函数加密之后的

所谓的新增、删除、修改用户信息,就是在这个表里面增删查改

1.2 创建用户

语法:

create user '用户名'@'登录主机/IP' identified by '密码'

本机登录:

image-20240519104352869

如果出现报错:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

采用flush privileges刷新权限,创建完毕之后也可以刷新一下,保证是有效的

image-20240519104822294

任意主机登录:

由于设置的是localhost,所以只能本地登录

如果想设置任意主机登录,采用%

create user 'pyh'@'%' identified by '111222';

Windows的IP是私有IP,经过多次路由转发之后,源地址就不再有效了,所以直接用%,表明任意主机

但是这个操作一般是禁止的,太危险了

设置密码的操作,mysql命令行一般不会记录下来,即往上翻是翻不到的

Windows登录:

image-20240519114241854

1.3 删除用户

语法:

drop user '用户名'@'主机名'

image-20240519110411418

1.4 修改密码

语法

自己设置自己的密码:

set password=password('新密码');

root用户修改指定用户密码:

set password for '用户名'@'主机名'=password('新密码');

本质上就是update

update user set authentication_string=password('112233');

2. 数据库权限

2.1 给用户权限

新创建的用户,是没有任何权限的,需要给用户授权

语法:

grant 权限列表 on 库.对象名 to '用户名'@'登录主机' [identified by '密码']

权限列表用逗号,隔开

grant select on ...
grant select, delete, create on ...
grant all [privileges] on *.* to ...	#赋予所有权限,所有的库所有的表

image-20240519121832954

查看赋予了哪些权限:

mysql> show grants for 'pyh'@'localhost';
+--------------------------------------------------------------+
| Grants for pyh@localhost                                     |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'pyh'@'localhost'                      |
| GRANT ALL PRIVILEGES ON `rootDB`.`user` TO 'pyh'@'localhost' |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)

这里给了所有权限

2.2 回收权限

语法:

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

image-20240519122520458

再次查看赋予的权限:

mysql> show grants for 'pyh'@'localhost';
+-----------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for pyh@localhost                                                                                                                      |
+-----------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'pyh'@'localhost'                                                                                                       |
| GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON `rootDB`.`user` TO 'pyh'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

insert权限被回收

移除所有权限:

image-20240519123352421

3. 跳过权限验证

如果忘记root的密码,在/etc/my.cnf配置文件下,可添加skip-grant-tables

然后重启mysql服务即可

systemctl stop mysqld
systemctl start mysqld

之后登录就可以跳过权限验证(不是很建议这样做)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Dirty_artist/article/details/139041131

mysql 用户管理_xyns的博客-爱代码爱编程

  MySQL是一个多用户数据库,可以为不同用户指定允许的权限。MySQL用户可以分为普通用户和root用户。 root用户是超级管理员,拥有所有权限,普通用户只拥有被授予的各种权限   用户管理包括但不限于管理用户

mysql用户管理_你是我的导航的博客-爱代码爱编程

1登录和退出MySQL mysql -h 192.168.5.240 -P 3306 -u root -p123 mysql -e "select user,host from user" 端口默认是3306不用指定,如果服务器端口改掉了,用-P指定。第二个msyql是远程执行,进去之后进去哪个库,-e执行哪条命令。其实不用在这写库,可以在表的前面加库

mysql用户权限管理_未来新星就是我的博客-爱代码爱编程

用户与权限管理(学习笔记) 1.登录mysql服务器: mysql –h hostname|IP –P port –u username –p DatabaseName –e "SQL语句" #例子: mysql -uroot -p -hlocalhost -P3306 mysql -e "select host,user from user" 2.

[mysql]mysql用户管理-爱代码爱编程

[MySQL]MySQL用户管理 文章目录 [MySQL]MySQL用户管理1. 用户的概念2. 用户信息3. 创建用户4. 修改用户密码5. 删除用户6. MySQL中的权限7. 给用户授权8. 回收权限

mysql创建管理员账户_mysql创建管理员用户-爱代码爱编程

1、在本地使用root账户登入 [root@mysqldb ~]# mysql -h 127.0.0.1 -u root -p Enter password: Welcome to the MySQL monito

js遇到需要正则匹配来修改img标签+清除行内样式-爱代码爱编程

方法一 var regex0 = new RegExp("(i?)(\<img)([^\>]+\>)", "gmi") //正则匹配表达式 this.newcontent = this.content.replace(regex0,"$2 style='display:block;margin: auto;width:120px;'

【golang】 mysql 在 go 语言驱动程序中常用参数-爱代码爱编程

文章目录 前言一、参数解释二、代码实现四、总结 前言 在 Go 语言中,我们使用数据库驱动程序来连接和操作数据库。对于 MySQL,我们通常使用 go-sql-driver/mysql 驱动程序

python学习-爱代码爱编程

核心代码 # 导入pandas库 import pandas as pd # 导入正则表达式包 import re # 指定Excel文件的路径,这个data.xlsx表为原始表,表内有40个sheet子表 file_p

mysql-爱代码爱编程

1、适合创建索引的情况 1.1、字段数值具有唯一性的限制 索引本身是具有约束作用的,比如创建唯一索引、主键索引在数据表中如果某个字段是唯一性的,可以创建唯一性索引或主键索引 在业务场景中具有唯一特性的字段,即使是