MySQL用户管理

一.权限表

1.user表

        user表是MySQL中重要的一个权限表,记录允许连接到服务器的账号信息,里面的权限是全局级对的。

2.db表和host表

        db表和host表式MySQL数据中非常重要的权限表,db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。host表中存储了某个主机对数据库的操作权限,配合db权限表对给定主机上的数据库级操作权限做更细致地控制。

3.tables_priv表和columns_priv表

tables_priv表用来对表设置操作权限。

columns_priv表用来对表的某一列设置权限

4.procs_priv表

procs_priv表可以对存储过程和存储函数设置操作权限

二.账号管理

1.登录和退出MySQL服务器

(1)使用root用户登录到本地mysql服务器的test库中

mysql -uroot -p -h location test

备注:-p选项后可以直接跟服务器密码但此方法存在安全隐患,密码可能被窥视。

           -h选项指定MySQL服务所在的位置,location表示本机,也可以是具体的IP地址

           最后的test则表示登录的MySQL服务器不许要使用“use test”命令直接进入test数据库中

(2) 使用root用户登录到本地mysql服务器的test库中,执行一条查询语句

mysql -uroot -p -h location test -e 'DESC mysql;';

备注:

        -e选项:允许你在命令行中输入进入到mysql数据库中要执行的命令,不需要再mysql的交互模式中输入。

        DESC:全称“describe”用于显示数据表的结构,包含字段名 (Field)、数据类型 (Type)、是否允许为空 (Null)、键类型 (Key)、默认值 (Default) 等。

(3)退出登录

exit

2.新建普通用户

(1)使用CREATE USER语句

使用CREATE USER创建一个用户,用户名是henan,密码是xiaoman,主机名是localhost

create user 'henan'@'location' identified by 'xiaoman';

备注:

        create:创建用户,数据库,数据表等;

        @前是用户名;@后是指定该用户能在那个主机上登录mysql服务器。

        identified by 用于指定该用户的密码。

(2)使用GRANT语句

创建一个新的用户testUser,密码为testpwd。用户 testUser对所有的数据有查询和更新权限,并授于对所有数据表的SELECT和UPDATE权限

grant select,update on  *.* to 'testUser'@'location' identified by 'testpwsd'; 

备注:

        grant:授权

        on:用于指定权限的范围

        *.*:第一个 * 代表所有数据库,第二个 * 代表所有表

        to:这部分指定了权限的受益人,即将这些权限授予给哪个用户

3.删除普通用户

(1)使用DROP user语句删除用户

使用DROP USER删除用户'henan'@'localhost'

drop user 'henan'@'localtion';

 备注:

        drop:DROP 命令是用于永久删除数据库对象的,如数据库、表、视图等

(2)使用DELETE语句删除用户

DELETE FROM mysql.user WHERE host='localhost' and user='henan';

备注:

        delete:仅用于数据表中删除一行数据。 

4.root用户修改自己的密码

(1)第一次登录MySQL服务器设置密码

SET PASSWORD=password("rootpwd3");

(2)使用UPDATE语句将root用户的密码修改为“rootpwd2”:

UPDATE mysql.user set Password=password("rootpwd2")
WHERE User="root" and Host="localhost";

5.root用户密码丢失的解决办法

(1)找到 MySQL 的配置文件(通常在 /etc/mysql/my.cnf 或者 /etc/my.cnf),并确保在 [mysqld] 部分添加了 skip-grant-tables 选项。如果没有,请手动添加并保存配置文件。


[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
socket=/usr/local/mysql/data/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
port = 3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=2048
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
#skip-grant-tables
[mysqld_safe]
log-error=/usr/local/mysql/data/error.log
#pid-file=/var/run/mariadb/mariadb.pid

 (2)使用root用户登录和重新设置密码

mysql -u root 
use mysql
update user set authentication_string=password('新密码') where user='root';

(3)加载权限表

flush privileges;

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值