(1)用户名和密码
mysql的帐户名包括用户名和主机名,并且默认的mysql的root用户密码为空,存在一个本地的空用户名的帐户,使用者可以输入任意的用户名也可以登陆mysql。
为了账户安全,我们需要执行以下操作。、
/*删除空用户*/
drop user ‘’@localhost;
/*修改root用户密码*/
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
设置新账户并移除已有账户.
(2)账户创建删除
可以用三种方式创建MySQL账户:
(1)使用CREATE USER语句
CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
CREATE USER master IDENTIFIED BY ‘mysql’;
CREATE USER master@localhost IDENTIFIED BY ‘mysql’;
PS: CREATE USER master IDENTIFIED BY ‘mysql’;等同于CREATE USER master@’%’ IDNETIFIED BY ‘mysql’
(2)使用GRANT语句
GRANT SELECT
ON test.testa TO 'monty'@'localhost'
IDENTIFIED BY 'password'
WITH GRANT OPTION;
PS:DBA在操作中绝对不可以赋予任何用于ALL PRIVILEGES的权限,而且也必须限定用户可操作的数据库。
(3)直接操作MySQL授权表
INSERT INTO user
VALUES( ‘localhost’, ‘monty’ , PASSWORD(‘some_pass’), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
flush privileges;
删除账户
DROP USER user_name;
mysql> drop user 'monty'@localhost;
注意: 要使用DROP USER,操作者必须拥有mysql数据库的全局CREATE USER权限或DELETE权限
DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。
(3)账户密码管理
mysqladmin管理工具修改密码:
shell> mysqladmin –u user_name -h host_name password "newpwd"
mysql命令行工具修改密码:
mysql> SET PASSWORD FOR‘jeffrey'@localhost = PASSWORD('biscuit');
mysql> GRANT USAGE ON *.* TO ‘jeffrey’@localhost IDENTIFIED BY 'biscuit';
mysql> UPDATE user SET Password=PASSWORD('bagel') WHERE Host=‘localhost' AND User ='francis';
(4)账户资源管理
限制帐户资源参数:
(1)MAX_QUERIES_PER_HOUR:每小时执行的最大查询数
(2)MAX_UPDATES_PER_HOUR:每小时允许执行的最大更新数
(3)MAX_CONNECTIONS_PER_HOUR:每小时允许的最大连接次数
(4)MAX_USER_CONNECTIONS:允许此用户同时连接数
GRANT ALL ON customer.* TO 'francis'@'localhost'
IDENTIFIED BY 'frank'
WITH MAX_QUERIES_PER_HOUR 20
MAX_UPDATES_PER_HOUR 10
MAX_CONNECTIONS_PER_HOUR 5
MAX_USER_CONNECTIONS 2;
更改已有账户的资源限制
GRANT USAGE ON *.* TO 'francis'@'localhost‘
WITH MAX_QUERIES_PER_HOUR 10
MAX_UPDATES_PER_HOUR 5
MAX_CONNECTIONS_PER_HOUR 0
MAX_USER_CONNECTIONS 1;
USAGE表示没有任何权限
‘0’表示取消资源限制