加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Mysql数据库中的用户管理与授权

发布时间:2022-11-08 12:34:30 所属栏目:教程 来源:
导读:  内容预知 1.登录用户的管理 1.1 查看用户密码的信息

  用户信息存放在mysql数据库下的user表(MySQL 服务下存在一个系统自带的 mysql 数据库)。

  use mysql ;
  show tables;
  Mysql修改

  内容预知 1.登录用户的管理 1.1 查看用户密码的信息
 
  用户信息存放在mysql数据库下的user表(MySQL 服务下存在一个系统自带的 mysql 数据库)。
 
  use mysql ;
  show tables;
  Mysql修改密码_mysql修改用户密码_mysql root 密码修改
 
  mysql修改用户密码_Mysql修改密码_mysql root 密码修改
 
  经常使用的查看密码信息的命令:
 
  能看到密码信息:是经过加密后的密码信息
 
  select user,host,authentication_string from user;
  mysql修改用户密码_Mysql修改密码_mysql root 密码修改
 
  1.2 登录用户的增加
 
  明文密码创建用户格式:
 
  create user  '用户名'@'主机' identified by  '密码'
  mysql root 密码修改_mysql修改用户密码_Mysql修改密码
 
  加密密码创建用户 :
 
   SELECT PASSWORD('密码');    #先获取加密的密码
   ?
   CREATE USER 'lisi'@'localhost' IDENTIFIED BY PASSWORD '加密的密码';
  mysql修改用户密码_Mysql修改密码_mysql root 密码修改
 
  1.3登录用户用户名的更改
 
   RENAME USER '旧的用户名'@'旧的主机地址' TO '新的用户名'@'新的主机地址';
  mysql root 密码修改_Mysql修改密码_mysql修改用户密码
 
  1.4删除登录用户
 
  drop user '用户名'@'登录地址';
  Mysql修改密码_mysql root 密码修改_mysql修改用户密码
 
  1.5查看当前登录的用户
 
  select user();
  mysql修改用户密码_Mysql修改密码_mysql root 密码修改
 
  1.6修改用户的密码
 
  普通用户只有修改自身密码的权限
 
  明文密码修改:
 
  set password = password  ('新密码');
  Mysql修改密码_mysql修改用户密码_mysql root 密码修改
 
  root用户是超级管理员,它不仅可以修改自身密码,还能修改其他用户的密码。
 
  set password for  '用户'@'登录地址' =password ('密码');
  mysql root 密码修改_mysql修改用户密码_Mysql修改密码
 
  1.7root密码的忘记后的修改找回方法
 
  该操作必须是在数据库本机且为root用户,才可进行
 
  第一步:添加跳过的初始配置
 
  vim  /etc/my.cnf
  skip-grant-tables
  mysql修改用户密码_Mysql修改密码_mysql root 密码修改
 
  第二步:重启数据库服务 ,修改数据库用户表中root密码
 
  systemctl restart mysql.service
  mysql
  mysql> UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('123123') where user='root';
   mysql> flush privileges;   #刷新数据库
   ?
   mysql> quit                #退出
  mysql修改用户密码_mysql root 密码修改_Mysql修改密码
 
  第三步:登录测试新密码
 
  mysql -u root -p123123
  mysql修改用户密码_mysql root 密码修改_Mysql修改密码
 
  第四步:撤销添加的免密码认证设置,重启数据库服务
 
  #删除配置文件中的配置,之后重启服务。
   注意:最后再把/etc/my.conf 配置文件里的skip-grant-tables 删除,并重启mysql服务。
   vim /etc/my.cnf
  systemctl restart mysqld.service
  Mysql修改密码_mysql修改用户密码_mysql root 密码修改
 
  2.管理登录用户的权限 2.1 常见的用户权限
 
  权限
 
  权限说明
 
  权限级别
 
  CREATE
 
  创建数据库、表或索引的权限
 
  数据库、表或索引
 
  DROP
 
  删除数据库或表的权限
 
  数据库或表
 
  GRANT OPTION
 
  赋予权限选项
 
  数据库或表
 
  REFERENCES
 
  引用权限
 
  数据库或表
 
  ALTER
 
  更改表的权限
 
  数据表
 
  DELETE
 
  删除表数据的权限
 
  数据表
 
  INDEX
 
  操作索引的权限
 
  数据表
 
  INSERT
 
  添加表数据的权限
 
  数据表
 
  SELECT
 
  查询表数据的权限
 
  数据表
 
  UPDATE
 
  更新表数据的权限
 
  数据表
 
  CREATE VIEW
 
  创建视图的权限
 
  视图
 
  SHOW VIEW
 
  查看视图的权限
 
  视图
 
  ALTER ROUTINE
 
  更改存储过程的权限
 
  存储过程
 
  CREATE ROUTINE
 
  创建存储过程的权限
 
  存储过程
 
  EXECUTE
 
  执行存储过程权限
 
  存储过程
 
  FILE
 
  服务器主机文件的访问权限
 
  文件管理
 
  CREATE TEMPORARY TABLES
 
  创建临时表的权限
 
  服务器管理
 
  LOCK TABLES
 
  锁表的权限
 
  服务器管理
 
  CREATE USER
 
  创建用户的权限
 
  服务器管理
 
  RELOAD
 
  执行 flush privileges, refresh, reload 等刷新命令的权限
 
  服务器管理
 
  PROCESS
 
  查看进程的权限
 
  服务器管理
 
  REPLICATION CLIENT
 
  查看主从服务器状态的权限
 
  服务器管理
 
  REPLICATION SLAVE
 
  主从复制的权限
 
  服务器管理
 
  SHOW DATABASES
 
  查看数据库的权限
 
  服务器管理
 
  SHUTDOWN
 
  关闭数据库的权限
 
  服务器管理
 
  SUPER
 
  超级权限
 
  服务器管理
 
  ALL [PRIVILEGES]
 
  所有权限
 
  USAGE
 
  没有任何权限
 
  2.2 查看用户已有权限的操作
 
   SHOW GRANTS;     #查看当前用户(自己)的权限
   ?
  mysql修改用户密码_Mysql修改密码_mysql root 密码修改
 
   SHOW GRANTS FOR 用户名@来源地址;    #查看其他用户的权限
  mysql修改用户密码_Mysql修改密码_mysql root 密码修改
 
  2.3授权操作
 
  [NO_AUTO_CREATE_USER], 即在grant语句中禁止创建空密码的账户,使用grant语法创建用户必须带上 “identified by”关键字设置账户密码Mysql修改密码,否则就被认为是非法的创建语句。
 
  Mysql修改密码_mysql修改用户密码_mysql root 密码修改
 
  方式一:对存在用户进行授权
 
  GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];
  权限列表: 用于列出授权使用的各种数据库操作,以逗号进行分隔如"select, insert,update"。 使用"all"表示所有权限(实际上部分权限仍无法使用,只包括大部分权限),可授权执行任何操作。
 
  ? 数据库名.表名: 用于指定授权操作的数据库和表的名称,其中可以使用通配符*。 例如,使用"mysql.*" 表示授权操作的对象为mysql数据库中的所有表。 ? '用户名'@'来源地址': 用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。 来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址。
 
  IDENTIFIED BY: 用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略"IDENTIFIED BY"部分,则用户的密码将为空。
 
  mysql root 密码修改_mysql修改用户密码_Mysql修改密码
 
  方式二:对不存在的用户进行创建并授权
 
   GRANT ALL PRIVILEGES ON *.* TO  '用户名'@'来源地址' IDENTIFIED BY '密码';
  mysql修改用户密码_mysql root 密码修改_Mysql修改密码
 
  mysql修改用户密码_mysql root 密码修改_Mysql修改密码
 
  2.4 撤销用户权限
 
   revoke 权限列表/ALL on 库名.表名 from '用户名'@'来源地址';
  Mysql修改密码_mysql root 密码修改_mysql修改用户密码
 
  mysql root 密码修改_Mysql修改密码_mysql修改用户密码
 
  2.5 用户的远程登录
 
   mysql -u 用户名 -p[密码] -h 目标IP/主机名 -P 端口号              #远程连接mysql
  mysql修改用户密码_mysql root 密码修改_Mysql修改密码
 
  注意:
 
  Mysql修改密码_mysql修改用户密码_mysql root 密码修改
 
  总结 1.用户管理操作
 
  create user 'username'@'address' identified by 'password'; #创建用户 ?
 
  select user,host,authentication_string from mysql.user; #查看用户信息 ?
 
  rename user old_user to new_user; #修改用户名 ?
 
  drop user '用户名'@'来源地址'; #删除用户 ?
 
  set password = password('XXXX'); #修改当前登录用户的密码 ?
 
  set password for '用户名'@'来源地址' = password('XXXX'); #修改其他用户的密码 ?
 
  select user (); #查看当前登录用户和来源地址 ?
 
  ###忘记root用户密码的解决方法:
 
  修改mysql配置文件/etc/my.cnf,在 [mysqld] 配置项下加入 skip-grant-tables
 
  service mysqld restart #重启服务
 
  mysql #免密登陆
 
  update mysql.user set authentication_string=password('新密码') where user='root';
 
  #修改密码 flush privileges; #刷新数据库
 
  2.用户授权操作
 
  grant 权限列表/ALL ON 库名.表名 to 'username'@'address' identified by '密码'; ? #授予用户权限
 
  show grants; #查看当前用户(自己)的权限
 
  show grants for 'username'@'address'; #查看其他用户的权限 ?
 
  revoke 权限列表/ALL on 库名.表名 from 'username'@'address'; #撤销用户的权限 ?
 
  mysql -u 用户名 -p[密码] -h 目标IP/主机名 -P 端口号 #远程连接mysql
 

(编辑:草根网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!