您现在的位置是:技术博客 > 数据库数据库 Mysql用户及权限 Lucas2021-12-16 09:29【代码】1084人已围观 简介MySQL中用户与权限的相关操作。 #### 一、用户 1、查询所有用户 ``` SELECT User, Host, Password FROM mysql.user; ```  2、创建用户 ``` # 例如:创建一个用户名为lucas,密码为123456,的用户 CREATE USER 'lucas'@'localhost' IDENTIFIED BY '123456'; ``` 提示:显示的用户密码是用password()函数加密的,上述创建的lucas密码等同于`select password('123456');`。 3、删除用户 ``` DROP USER 'username'@'host'; ``` 4、重命名用户名 ``` rename user 'test3'@'host' to 'test1'@'host'; ``` 5、修改用户的密码 ``` set password for '用户名'@'host' = password('密码'); ``` #### 二、权限 1、查看用户lucas的权限 ``` show grants for 'lucas'@'localhost'; ``` 2、给用户赋权限 ``` # 规范格式如下 GRANT privileges ON databasename.tablename TO 'username'@'host' ``` 3、实例如下 ``` # 赋予demo库lucas_log表,ALTER和SELECT操作权限 RANT ALTER,SELECT ON demo.ph_ban TO 'lucas'@'localhost'; # 赋予demo库lucas_log表,所有操作权限 RANT ALL PRIVILEGES ON demo.ph_ban TO 'lucas'@'localhost'; # 赋予ceshi库的所有表所有操作权限 GRANT ALL PRIVILEGES ON ceshi.* TO 'lucas'@'localhost'; # 赋予所有库所有表所有操作权限 GRANT ALL PRIVILEGES ON *.* TO 'lucas'@'localhost'; ``` 3、用以上命令授权的用户不能给其它用户赋权限,如果想让该用户可以授权,用以下命令,关键词是`WITH GRANT OPTION`。 ``` GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; ``` 4、权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库 ``` flush privileges; ``` #### 三、撤销权限 ``` # 规范格式如下,关键词是“REVOKE” REVOKE privilege ON databasename.tablename FROM 'username'@'host'; ``` #### 四、权限命令 | 关键词 | 解释 | | ------------ | ------------ | | usage | 连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予) | | select | 必须有select的权限,才可以使用select table | | create | 必须有create的权限,才可以使用create table | | create routine | 必须具有create routine的权限,才可以使用{create ,alter,drop} {procedure,function} | | create temporary tables | 必须有create temporary tables的权限,才可以使用create temporary tables. | | create view | 必须有create view的权限,才可以使用create view | | create user | 要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。 | | insert | 必须有insert的权限,才可以使用insert into ….. values…. | | alter | 必须有alter的权限,才可以使用alter table | | alter routine | 必须具有alter routine的权限,才可以使用{alter,drop} {procedure,function} | | update | 必须有update的权限,才可以使用update table | | delete | 必须有delete的权限,才可以使用delete from ….where….(删除表中的记录) | | drop | 必须有drop的权限,才可以使用drop database db_name; drop table tab_name | | show database | 通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。 | | show view | 必须拥有show view权限,才能执行show create view。 | | index | 必须拥有index权限,才能执行[create,drop] index | | excute | 执行存在的Functions,Procedures | | lock tables | 必须拥有lock tables权限,才可以使用lock tables | | references | 有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束 | | reload | 必须拥有reload权限,才可以执行flush [tables , logs , privileges] | | replication client | 拥有此权限可以查询master server、slave server状态 | | replication slave | 拥有此权限可以查看从服务器,从主服务器读取二进制日志 | | Shutdown | 关闭MySQL | | grant option | 拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限) | | file | 拥有file权限才可以执行 select ..into outfile和load data infile…操作,但是不要把file, process, super权限授予管理员以外的账号,这样存在严重的安全隐患 | | super | 这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE MASTER,PURGE MASTER LOGS。 | | process | 通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。 | 转载:感谢您对Lucas个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源Lucas个人博客”。 很赞哦! ( 0 ) 上一篇:外键约束问题 下一篇:MYSQL优化 相关文章 常用的SQL函数 页面可视化数据表结构 存储过程函数 mysql连表查询 点击排行 生活不止眼前的苟且,还有诗和远方 十年一觉电影梦 奥地利基茨比厄尔 禅修治愈身心 自律成就自我 零边际成本社会 Modern PHP 鸟哥的Linux私房菜 本栏推荐 要技术,更要有创意 定时任务 Curl无法发送https请求 Lnmp环境搭建 常用的SQL函数 Windows的cmd指令 ueditor工具栏浮动bug 有趣的js插件 标签云 git laravel swoole javascript vue ajax html css sql linux docker flask django nginx apache thinkphp markdown sublime wechat layui photoshop nodejs mysql windows composer java maven springboot mybatis IDE 猜你喜欢 Swoole 基础篇一(初识) PHP进程管理器 正则的快速上手 Sublime代码格式化 Lnmp环境搭建 高并发库存防控超量 Linux之top命令 常用的SQL函数 站点信息 建站时间:2018-05-01 在线人数:1人 文章统计:263篇 总浏览量:222515次 统计数据:百度统计 个人信息:扫描二维码查看