- 6.2.1帐户用户名和密码
- 6.2.2 MySQL提供的特权
- 6.2.3授权表
- 6.2.4指定帐户名称
- 6.2.5指定角色名称
- 6.2.6访问控制,第一阶段:连接验证
- 6.2.7访问控制,第二阶段:请求验证
- 6.2.8添加帐户、分配权限和删除帐户
- 6.2.9保留帐户
- 6.2.10使用角色
- 6.2.11帐户分类
- 6.2.12使用部分撤销的权限限制
- 6.2.13权限变更何时生效
- 6.2.14分配帐号密码
- 6.2.15密码管理
- 6.2.16密码过期服务器处理
- 6.2.17可插拔认证
- 6.2.18代理用户
- 6.2.19帐户锁定
- 6.2.20设置帐户资源限制
- 6.2.21 MySQL连接问题
- 6.2.22基于sql的帐户活动审计
MySQL允许创建帐户,允许客户端用户连接到服务器并访问服务器管理的数据。MySQL特权系统的主要功能是对从给定主机连接的用户进行身份验证,并将该用户与数据库上的特权相关联选择
,插入
,更新
,删除
.其他功能包括为管理操作授予特权的能力。
为了控制哪些用户可以连接,可以为每个帐户分配身份验证凭据,例如密码。MySQL帐户的用户界面由SQL语句组成,例如创建用户
,格兰特
,撤销
.看到第13.7.1节“帐户管理报表”.
MySQL特权系统确保所有用户只能执行被允许的操作。作为用户,当您连接到MySQL服务器时,您的身份由要连接的主机而且您指定的用户名.当您连接后发出请求时,系统根据您的身份和权限授予权限你想做什么.
MySQL同时考虑您的主机名和用户名来识别您,因为没有理由假定给定的用户名属于所有主机上的同一个人。例如,用户乔
谁从哪里连接office.example.com
不需要和用户是同一个人乔
谁从哪里连接home.example.com
.MySQL通过使您能够区分碰巧具有相同名称的不同主机上的用户来处理这个问题:您可以为连接授予一组特权乔
从office.example.com
,以及用于连接的一组不同的特权乔
从home.example.com
.要查看给定帐户具有哪些特权,请使用秀奖助金
声明。例如:
SHOW GRANTS FOR 'joe'@'office.example.com';SHOW GRANTS FOR 'joe'@'home.example.com';
类的授权表中存储特权信息mysql
系统数据库。MySQL服务器在启动时将这些表的内容读入内存,并根据授权表的内存副本做出访问控制决策。
MySQL访问控制包括两个阶段,当你运行一个客户端程序连接到服务器:
阶段1:服务器将根据您的身份以及您是否能够通过提供正确的密码来验证您的身份来接受或拒绝连接。
阶段2:假设您可以连接,服务器将检查您发出的每个语句,以确定您是否有足够的权限来执行它。例如,如果您试图从数据库中的表中选择行或从数据库中删除表,服务器将验证您是否具有选择
表的特权下降
数据库的特权。
有关每个阶段发生的事情的更详细描述,请参见第6.2.6节,“访问控制,第一阶段:连接验证”,第6.2.7节“访问控制,第二阶段:请求验证”.有关诊断特权相关问题的帮助,请参见章节6.2.21,“连接MySQL的问题排除”.
如果您在连接时更改了权限(由您自己或其他人更改),这些更改不一定对您发出的下一个语句立即生效。有关服务器重新加载授权表的条件的详细信息,请参见章节6.2.13,“权限更改生效时”.
有一些事情你不能做MySQL特权系统:
您不能显式地指定应该拒绝给定用户的访问。也就是说,您不能显式地匹配一个用户,然后拒绝该连接。
不能指定用户具有在数据库中创建或删除表的特权,但不能指定用户具有创建或删除数据库本身的特权。
密码对帐号的作用是全局的。不能将密码与特定对象(如数据库、表或例程)关联。