• 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';

  • 相关阅读:
    安卓执行机制JNI、Dalvik、ART之间的比較 。android L 改动执行机制。
    Android studio 导入githubproject
    JS创建对象几种不同方法具体解释
    python 学习笔记 13 -- 经常使用的时间模块之time
    Version和Build的差别
    关于Java基础的一些笔试题总结
    vim编码方式配置的学习和思考
    从头认识java-15.5 使用LinkedHashSet须要注意的地方
    一篇文章,带你明确什么是过拟合,欠拟合以及交叉验证
    Spring -- Bean自己主动装配&Bean之间关系&Bean的作用域
  • 原文地址:https://www.cnblogs.com/20e8/p/10636069.html
Copyright © 2020-2023  润新知