本篇博文会简单的介绍MySQL数据库对象的管理,其中会着重介绍其权限管理与字符集
一.权限管理
1.添加或修改密码
对于MySQL我们可以通过mysqladmin来添加或修改密码
修改root用户密码为123456
mysqladmin -uroot -p password '123456'
2.创建一个新用户
我们平时都直接用root用户来登陆MySQL这是很不安全的,此时添加新用户就显的很重要了
添加新用户的命令
create user 'userName'@'userAddress' identified by 'userPassword'
3.权限管理
我们在2中新创建用户以后该用户是没有任何权限的除了登陆权,所以我们得用我们的root用户赋予其权限
使用grant语句为用户赋权
grant all privileges on *.* to 'userName'@'userAddress' with grant options;
当然可以给用户于权利,自然就可以收回
收回权限的命令
revoke all privileges on *.* from 'jesse'@'localhost';
4.权限操作的原理
在mysql数据库中设计权限管理的共有4张表,分别为,user,db,tables_priv,columns_priv,当用户执行操作如select时,数据库由大到小,从user表开始到colmns_priv表,逐个验证用户是否有权限
查看某一用户所拥有的权限
select * from mysql.user where user = 'userName'\G
二.字符与字符集
字符序是对字符集的排序,不同的字符集中可能有多种字符序,不同的字符序所能排序的字符不同,精度和性能也不同
查看MySQL中的字符序
show collation;
1.默认字符与字符集的设置级别:服务器 > 数据库 > 表 > 列
服务器级
character_set_server:默认内部操作字符集
character_set_system:系统元数据字符集
数据库级
character_set_database:当前选中数据库的默认字符集
database的字符集如果不设置,默认使用的是character_set_server的字符集
需要注意的是以上字符集的设置都要在创建时伴随这设置
例如我们创建数据库时,来设置数据库字符集
create database xxx character set xxx collate xxx;
第一个xxx为所建数据库名,后俩个则分别为字符集与字符序名
2.查看系统级别字符集
命令如下
show global variables like '%chara%';
输出如下