问题阐述
在MySQL 数据库中,如何修改已存在的用户密码?如何新增数据库用户,并赋予该用户特定权限?
专家解答
很多刚刚接触MySQL 数据库的用户,在默认情况下都会使用系统用户账户,即“root”
用户。该用户具有最高管理权限。但是,为了保证数据库数据的安全性和稳定性,需要重置账户密码,当其他用户预申请访问数据库时,就必须通过管理权限用户为访问申请者新增加一个具有特定操作权限的用户账户,以限制用户的操作权限。
1.修改用户密码
(1)用户可以通过第三方MySQL 管理工具来修改用户密码,如phpmyadmin 等。用户只需要登录图形化管理界面,并利用鼠标单击mysql 数据库中的user 表,然后再应用SQL 语句来更改特定用户的账户密码即可。在修改密码时,必须应用PASSWORD()函数,以此来保证MySQL 用户名的安全。
(2)在命令提示符中使用mysqladmin,即在命令提示符界面中输入如下命令:
mysqladmin -u root -p oldpassword newpasswd
执行上述命令后,需要用户输入root 的原密码,这样root 的密码将改为newpasswd。同样,把命令里的root 改为用户的用户名,用户就可以更改之前的密码了。当然,如果用户的mysqladmin 无法正常连接到服务器上,或因软件损坏而导致无法运行,则不能使用该方法,并且mysqladmin 无法将设置的密码清空。
(3)使用以下语句来修改数据库用户密码,其命令如下:
INSERT INTO mysql.user (Host,User,Password) VALUES ('%', 'mr', PASSWORD('mrsoft'));
FLUSH PRIVILEGES
此方法更确切地说是用户向数据库中增加一个新用户,用户名为mr,密码为mrsoft。注意要使用PASSWORD 函数,然后还要使用FLUSH PRIVILEGES 来执行确认。
2.设置用户权限
设置用户权限应用的是Grant 命令。其具体语句如下:
GRANT ALL PRIVILEGES ON *.* TO mr@localhost IDENTIFIED BY 'mrsoft' WITH GRANT OPTION;
对用户的每一项权限进行设置,插入:
mysql>INSERT INTO user VALUES('localhost', '
system',PASSWORD('mrsoft'), 'Y', 'Y', 'Y', '
Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '
Y', 'Y', 'Y');
说明:
设置用户权限的用户账号,必须具备有与“root”相同权限,即所有执行权限。
专家点评
“root”用户是MySQL 安装时自带的用户,也可以说是权限最大的用户,但是,出于对数据库安全性的考虑,在安装完数据库后建议您修改密码,另外,通过创建其他账户,分配其他用户具有查询、或单一操作的权限(只具有增加、删除或更新权限的用户账户),从而保证数据库系统的安全性和稳定性。