数据库用户权限

在做采集平台的过程中,碰到了很多有关数据库用户权限导致的采集问题。

所以计划用各种权限的用户测试一下。

这里记录一下关于数据库用户和权限的一些操作。

1 MYSQL

参数说明

username:要创建用户的名字,username 的引号可以不加哦,但 host 必须加。

host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填’localhost’ ;如果允许从远程登陆,则填 ‘%’;如果是限制某台机器登录,则添加其ip:如’10.11.20.30’

password:新创建用户的登陆数据库密码,如果没密码可以不写。

1.1 MYSQL远程工具登录失败

现象:

1
Plugin 'caching_sha2_password' cannot be loaded

解决:msyql8默认的加密方式改了,我们改回之前的就好

1
2
3
ALTER USER {username}@'{host}' IDENTIFIED BY '{password}' PASSWORD EXPIRE NEVER;
ALTER USER {username}@'{host}' IDENTIFIED WITH mysql_native_password BY '{password}';
FLUSH PRIVILEGES; #刷新权限
1
2
3
ALTER USER 'root'@'%' IDENTIFIED BY '{yourPassword}' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '{yourPassword}';
FLUSH PRIVILEGES; #刷新权限

1.2 用户操作

1.2.1 查看用户

查看所有用户

1
SELECT * FROM mysql.user;

1.2.1 创建用户

1
CREATE USER {username}@'{host}' IDENTIFIED BY '{password}';
1
CREATE USER [email protected]'%' IDENTIFIED BY '123456';

1.2.2 删除用户

1
DROP USER {username}@'{host}';
1
DROP USER xiaoma@'%';

1.2.3 密码操作

1
ALTER USER {username}@'{host}' IDENTIFIED BY '{new_password}';
1
ALTER USER [email protected]'%' IDENTIFIED BY '1234567';

1.3 权限操作

1.3.2 查看权限

查看某个用户权限

1
SHOW GRANTS FOR {username}@'{host}';
1
SHOW GRANTS FOR [email protected]'%';

1.3.1 分配权限

1
2
GRANT {privileges} ON {databasename}.{tablename} TO '{username}'@'{host}' with grant option;
FLUSH PRIVILEGES;
1
2
GRANT SELECT ON hdc_collect.batch_collect TO [email protected]'%';
FLUSH PRIVILEGES;

参数说明

privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL

databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 “ . “,* 是一个通配符,表示全部。

flush privileges:刷新权限

with grant option:这个用户能够给其他用户授权

权限列表

SELECT:表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。

INSERT:表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。

DELETE:表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。

UPDATE:表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。

REFERENCES:表示授予用户可以创建指向特定的数据库中的表外键的权限。

CREATE:表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。

ALTER:表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。

SHOW VIEW:表示授予用户可以查看特定数据库中已有视图的视图定义的权限。

CREATE ROUTINE:表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。

ALTER ROUTINE:表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。

INDEX:表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。

DROP:表示授予用户可以删除特定数据库中所有表和视图的权限。

CREATE TEMPORARY TABLES:表示授予用户可以在特定数据库中创建临时表的权限。

CREATE VIEW:表示授予用户可以在特定数据库中创建新的视图的权限。

EXECUTE ROUTINE:表示授予用户可以调用特定数据库的存储过程和存储函数的权限。

LOCK TABLES:表示授予用户可以锁定特定数据库的已有数据表的权限。

ALLALL PRIVILEGES:表示以上所有权限。

1.3.2 撤销权限

回收权限,格式和分配差不多,grant -> revoke , to -> from

1
REVOKE {privileges} ON {databasename}.{tablename} FROM '{username}'@'{host}';
1
REVOKE SELECT ON hdc_collect.batch_collect FROM [email protected]'%';

注意

若授予权利是这样写:GRANT SELECT ON *.* TO [email protected]'%';
则用 REVOKE SELECT ON hdc_collect.batch_collect TO [email protected]'%'; 是不能撤销用户 xiaoma 对 hdc_collect.batch_collect 中的 SELECT 权利的。

反过来 GRANT SELECT ON hdc_collect.batch_collect TO [email protected]'%'; 授予权力
REVOKE SELECT ON *.* TO [email protected]'%'; 也是不能用来撤销用户 xiaoma 对 hdc_collect 库的 batch_collect 表的SELECT 权利的

2 ORACLE

Finally 躺板板

红伞伞白杆杆,吃完一起躺板板

躺板板埋山山,亲朋都来吃饭饭

饭饭里有红伞伞,吃完全村埋山山,来年长满红伞伞

联系博主,加入【羊山丨交流社区】

联系博主


本博客所有文章除特别声明外,均为原创。版权归博主小马所有。任何团体、机构、媒体、网站、公众号及个人不得转载。如需转载,请联系博主(关于页面)。如其他团体、机构、媒体、网站、博客或个人未经博主允许擅自转载使用,请自负版权等法律责任!