zoukankan      html  css  js  c++  java
  • Mysql 数据库管理

    1. mysql用户和权限

    mysql权限控制通过两步控制,第一是能不能连接(验证用户身份),第二是能执行什么操作(验证权限)。

    其中身份验证,需要验证连接mysql的计算机的IP地址或者计算机名称还有用户账户和密码。

    2.管理mysql用户

    查看mysql当前连接用户:select (user());

    查看mysql系统内所有用户:select user,host from mysql.user;

    mysql登录参数: mysql -u root -h 127.0.0.1 -p

    查看数据库版本:select @@version;

    查看变量: show variables;

    删除匿名账户: delete from mysql.user where user='';  (删除后需求重启mysql服务生效)

    创建mysql账户: create user zhang@'192.168.80.%'; (创建用户可以在80网段的机器上访问,不需要密码,用户名称区分大小写)

    设置用户密码: set password for zhang@'192.168.80.%' =password('123')    (其中123为设置密码)

    创建用户直接指定密码: create user zhang@'192.168.80.%' identified by '123'    (其中123为设置密码)

    通过grant方式创建用户: grant select on schoolDB.* to  zhang@'192.168.80.%' identified by '123';   (创建用户并指定用户密码和权限)

    创建用户通过插入mysql.user表:insert into mysql.user (user,host,password) values ('luo','192.168.80.%',password('123')); (需要执行刷新权限命令: flush privileges;)

    删除mysql用户: delete from mysql.user where user='zhuang'; (所有zhang的用户都会删除,需要刷新权限flush privileges)

            drop user zhang@'192.168.80.%'; (无需刷新权限,直接生效)

    mysql权限级别:

    全局层级: 全局权限适用于一个给定服务器中的所有数据库,这些权限存储在mysql.user表中,grant all on *.* 和 revoke all on *.* 是授予和撤销全局权限命令。

    grant select on *.* to 'test'@'localhost';

    数据库层级: 数据库权限适用于一个给定数据库中的所有目标。这些权限存储在mysql.db 和 mysql.host 表中,grant all on db_name.*  revoke on db_name.* 是授予和撤销数据权限。

    grant select on schoolDB.* to 'test'@'localhost';

    表层级:适用于一个给定表中的所有列,存储在mysql.tables_priv表中。grant all on db_name.tbl_name , revoke all on dbname.tbl_name 是授予和撤销。

    grant select,update,insert,delete on shcoolDB.Tstudent to 'test'@'locahost';

    revoke update,insert on schoolDB.Tstudent from 'test'@'localhost';

    列层级:适用于一个给定表中的单一列,存储在mysql.columns_priv表中。

    grant select(studentid,sname) on schoolDB.Tstudent to 'webuser'@'localhost'; (授权webuser用户能够查询数据库的表schoolDB.Tstudent 的studentid和sname两列)

    revoke select(studentid,sname) on schoolDB.Tstudent from  'webuser'@'localhost';  (撤销权限)

    grant update(Email,Class) on schoolDB.Tstudent to 'webuser'@'localhost';  (授权webuser用户能够更改数据库的表schoolDB.Tstudent 的email和sname两列)

    revoke update(Email,Class) on schoolDB.Tstudent from 'webuser'@'localhost';  (撤销权限)

    flush privileges;

    授予权限合并成一条:grant select(studentid,sname),update(Email,Class) on schoolDB.Tstudent to 'webuser'@'localhost';

    修改命令: update Tstudent set sname='cool' where studentid='0001';

    显示用户权限: show grants for 'test'@'localhost';

    分配执行过程权限: grant execute on procedure schoolDB.gets to 'test'@'localhost';

    分配执行函数权限: grant execute on function schoolDB.create_name to 'test'@'localhost';

    root 密码丢失恢复:

    修改配置文件:/etc/my.conf

    加入一行 skip-grant-talbes

    重启mysqld服务。

    重置密码: update user set password=password('123') where user='root';

  • 相关阅读:
    centos8 将SSSD配置为使用LDAP并要求TLS身份验证
    Centos8 搭建 kafka2.8 .net5 简单使用kafka
    .net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
    Springboot根据不同环境加载对应的配置
    VMware Workstation12 安装 Centos8.3
    .net core json配置文件小结
    springboot mybatisplus createtime和updatetime自动填充
    .net core autofac依赖注入简洁版
    .Net Core 使用 redis 存储 session
    .Net Core 接入 RocketMQ
  • 原文地址:https://www.cnblogs.com/20e8/p/10636069.html
Copyright © 2011-2022 走看看