十三、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安全机制 - 水到绝境是飞瀑 - 谁的青春不迷茫
 

mysql -h localhost -u root -pNumber@01 school -e "select * from students"

十三、MySQL安全机制 - 水到绝境是飞瀑 - 谁的青春不迷茫
 
 
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';


---------------------------------------------------------       小路原创           ------------------------------------------------
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值