1. 用户
1.1 用户信息
在mysql
数据库下,这个库里面会自带各种表
里面user
表里面,就记录了用户信息
- **
host
:**用户可以从哪个主机登录,localhost
表明只能从本机登录 - **
user
:**用户名 authentication_string
:password
函数加密之后的
所谓的新增、删除、修改用户信息,就是在这个表里面增删查改
1.2 创建用户
语法:
create user '用户名'@'登录主机/IP' identified by '密码'
本机登录:
任意主机登录:
由于设置的是localhost
,所以只能本地登录
如果想设置任意主机登录,采用%
create user 'pyh'@'%' identified by '111222';
Windows登录:
1.3 删除用户
语法:
drop user '用户名'@'主机名'
1.4 修改密码
语法
自己设置自己的密码:
set password=password('新密码');
root用户修改指定用户密码:
set password for '用户名'@'主机名'=password('新密码');
2. 数据库权限
2.1 给用户权限
新创建的用户,是没有任何权限的,需要给用户授权
语法:
grant 权限列表 on 库.对象名 to '用户名'@'登录主机' [identified by '密码']
查看赋予了哪些权限:
mysql> show grants for 'pyh'@'localhost';
+--------------------------------------------------------------+
| Grants for pyh@localhost |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'pyh'@'localhost' |
| GRANT ALL PRIVILEGES ON `rootDB`.`user` TO 'pyh'@'localhost' |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)
这里给了所有权限
2.2 回收权限
语法:
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
再次查看赋予的权限:
mysql> show grants for 'pyh'@'localhost';
+-----------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for pyh@localhost |
+-----------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'pyh'@'localhost' |
| GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON `rootDB`.`user` TO 'pyh'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
insert
权限被回收
移除所有权限:
3. 跳过权限验证
如果忘记root
的密码,在/etc/my.cnf
配置文件下,可添加skip-grant-tables
然后重启mysql
服务即可
systemctl stop mysqld
systemctl start mysqld
之后登录就可以跳过权限验证(不是很建议这样做)