MySQL安全机制是如何的
MySQL安全机制是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 通过为MySQL用户赋予适当的权限来提高数据的安全性。 MySQL中主要包含root用户和普通用户。root用户拥有一切权限,普通用户只能拥有部分权限。 在MySQL的系统数据库mysql中存储着权限表,最主要有mysql.user、mysql.db、table_priv、columns_priv、procs_priv表。 一、MySQL用户权限 在user表中保存着权限信息,包括用户字段、权限字段、安全字段和资源控制字段四类信息,共39个字段。 二、MySQL用户机制 DOS下登陆MySQL完整命令: mysql -h hostname|hostIP -p port -u username -p DatabaseName -e "SQL语句" 其中: -h指定所连MySQL服务器地址,可以用两种方式:hostname(主机名)、hostIP(主机IP地址) -p指定所连MySQL服务器端口号,默认是3306。 -u指定用户。 -p提示输入密码。 DatabaseNmae指定登陆到哪一个数据库,默认是mysql数据库。 -e指定所执行性的SQL语句。 example: mysql -h localhost -u root -pNumber@01 school(-p和密码之间没有空格!) mysql -h localhost -u root -pNumber@01 school -e "select * from students" DOS下退出登陆:exit|quit 创建用户: 1、create user 创建普通用户,不能赋权值 create user user_name[identified by [password] 'password'] [,user_name [identified by [password] 'password']]…… 其中password关键字表示对密码加密。 example: create user test identified by '123'; 2、insert 创建普通用户,不能赋权值 insert into user(Host,User,Password) values('hostname','username',password('password')); 3、grant 创建普通用户,能赋权值 grant priv_type on databasename.tablename to username[identified by [password]'password'] [,username[identified by [password]'password']]…… 修改密码: 1、通过mysqladmin命令 mysqladmin -u username -p password "new_password" 2、通过set命令修改root用户密码 先登陆root set password = password("new_password"); 3、更新user数据记录修改root和普通用户密码 update user set password = password("new_password") where user = 'root' and host = 'localhost'; example: update user set password = password("234") where user = 'test' and host = 'localhost'; 删除用户账户: drop user user1[,user2] 或 delete from user where user = 'username' and host = 'localhost'; 三、权限管理 1、授权 grant priv_type[(column_list) on databse.table to user [identified by [password] 'password'] [,user [identified by [password] 'password']] [with with-option[with-option]……] 其中: priv_type表示权限类型;column_list表示权限作用于的字段,省略该参数时作用于整个表。 DATABASE.table表示数据库中的某个表; with-option参数可以取以下值: grant option:被授权的用户可以将权限授给其他用户 MAX_QUERIES_PER_HOUR count;设置每个小时可以执行count次查询 MAX_UPDATES_PER_HOUR count:设置每个小时可以执行count次更新 MAX_CONNECTIONS_PER_HOUR count:设置每小时可以建立count个连接 MAX_USER_CONNECTIONS count:设置单个用户可以同时具有count个连接 2、查看权限 show grants for user_name; show grants for 'test'; 3、收回权限 revoke priv_type [(column_list)] on DATABASE.table from user1 [identified by [password] 'password'] 收回所有权限 revoke all privileges,grant option from user1 [identified by [password] 'password'] revoke all privileges,grant option from 'test'; show grants for 'test'; 看完上述内容,你们掌握MySQL安全机制是怎样的的方法了吗? (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |