写点什么

mysql 用户 & 权限总结

  • 2021 年 11 月 11 日
  • 本文字数:2253 字

    阅读完需:约 7 分钟

Select_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Insert_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Update_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Delete_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Create_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Drop_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Reload_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Shutdown_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Process_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


File_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Grant_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


References_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Index_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Alter_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Show_db_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Super_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Create_tmp_table_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Lock_tables_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Execute_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Repl_slave_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Repl_client_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Create_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Show_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Create_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Alter_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Create_user_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Event_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Trigger_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


Create_tablespace_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


ssl_type enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',


ssl_cipher blob NOT NULL,


x509_issuer blob NOT NULL,


x509_subject blob NOT NULL,


max_questions int(11) unsigned NOT NULL DEFAULT '0',


max_updates int(11) unsigned NOT NULL DEFAULT '0',


max_connections int(11) unsigned NOT NULL DEFAULT '0',


max_user_connections int(11) unsigned NOT NULL DEFAULT '0',


plugin char(64) COLLATE utf8_bin DEFAULT 'mysql_native_password',


authentication_string text COLLATE utf8_bin,


password_expired enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',


PRIMARY KEY (Host,User)


) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges';

创建用户并授权

grant all privileges on . to 'user_name'@'host' identified by 'password' with grant option;


添加权限(和已有权限合并,不会覆盖已有权限)


GRANT Insert ON your database.* TO user@host;


  • all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DR


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


OP 等。


  • on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到 test 库的 user 表中,可以这么写:test.user

  • to:将权限授予哪个用户。格式:”用户名”@”登录 IP 或域名”。%表示没有限制,在任何主机都可以登录。比如:””@”192.168.0.%”,表示 test 这个用户只能在 192.168.0IP 段登录

  • identified by:指定用户的登录密码

  • with grant option:表示允许用户将自己的权限授权给其它用户


可以使用 GRANT 给用户添加权限,权限会自动追加,不会覆盖之前授予的权限,比如你先给用户添加一个 SELECT 权限,后来又给用户添加了一个 INSERT 权限,那么该用户就同时拥有了 SELECT 和 INSERT 权限。

1、创建用户

进入 mysql 数据库

use mysql;

创建用户(这个 sql 创建的用户是没有权限的)

create user 'user_name'@'host' identified by 'password';


  • user_name:要创建用户的名字。

  • host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’

  • password:新创建用户的登陆数据库密码,如果没密码可以不写


注意:在 MySQL 里面,用户名 (user)+ 地址 (host) 才表示一个用户

查看用户权限

SHOW GRANTS FOR 'root'@'localhost';

2、权限操作

2.1、分配权限

grant privileges on databasename.tablename to 'username'@'host';

2.2、回收权限:

REVOKE privilege ON databasename.tablename FROM 'username'@'host';


  • privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update 等,如果要授予全部权力,则填 ALL

  • databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 " . ",* 是一个通配符,表示全部。

评论

发布
暂无评论
mysql用户&权限总结