MySQL的用户和角色基本使用 | 您所在的位置:网站首页 › mysql没有用户 › MySQL的用户和角色基本使用 |
MySQL账户和角色基本使用
0. 权限系统
mysql 的privilege 主要是认证 host+user,来决定给它什么privilege,比如SELECT, INSERT, UPDATE, and DELETE,其他还包括是否允许匿名用户以及能否使用一些函数。 三个无法实现的功能: 不能专门指定拒绝某个用户的连接 不能允许/拒绝 创建或者删除某数据库中的表,却无法创建/删除该数据库 不能对数据库/表等等设置密码, 密码只是属于账户的用户权限的信息存储在mysql数据库中的user, db, tables_priv, columns_priv, procs_priv, and global_grants表内,当mysql启动的时候,从这些表中读取信息加载到内存,用于判断权限信息。 身份识别 每个人的身份是根据连接数据库的host 与用户名的组合, 查看某个用户的权限,使用: SHOW GRANTS FOR 'joe'@'office.example.com'; SHOW GRANTS FOR 'joe'@'home.example.com';Mysql连接控制的2个步骤 服务器根据是否能够识别该用户来接收或者拒绝连接 如果可以连接,那么服务器会检查每一条执行的语句来决定是否该账户有足够的权限运行。 Mysql提供的privilegeMysql的权限有三种级别: Administrative 级别: 让用户能够管理整个mysql 服务的操作 database级别: 让用户使用一个或者多个数据库以及内部的东西 database object级别:比如表,索引,视图,存储过程都可以单独设置给用户Privileges also differ in terms of whether they are static (built in to the server) or dynamic (defined at runtime). 1. 账户 mysql账户和系统账户的关系 两个账户没有必然相关性,因为mysql允许使用-u来指定具体的mysql账户来连接服务 mysql的用户账户允许最长32个字符,系统账户的最大限制各有不同 mysql账户的密码以加密的方式存储在user表中 连接 shell> mysql --user=finley --password db_name shell> mysql -u finley -p db_name 创建用户和赋予权限CREATE USER语句会在mysql.user 表中创建一行,如果没有指定的内容会使用默认值。 -- 匿名用户使用''表示 GRANT ALL ON test.* TO ''@'localhost' ...; - 基本语法 CREATE USER [IF NOT EXISTS] user [auth_option] [, user [auth_option]] ... DEFAULT ROLE role [, role ] ... [REQUIRE {NONE | tls_option |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |