[MySQL FAQ]系列 -- 如何利用触发器实现账户权限审计-阿里云开发者社区

开发者社区> 科技小先锋> 正文

[MySQL FAQ]系列 -- 如何利用触发器实现账户权限审计

简介:
+关注继续查看
一个简单的例子:
delimiter |
create trigger before_insert_a before insert on a
for each row 
begin
if USER() != 'root@localhost' then
 insert into log values(user());
end if;
end; |
这里不能用 current_user() 代替 user(),因为 current_user() 取得的是创建该trigger的账户。
上面只是个简单的例子,可以通过查询mysql.user, mysql.db 等表来做更详细的权限验证判断。
需要注意的是:启用触发器后会带来系统性能上的下降,需要有个权衡。


本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/308620,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9485 0
mysql-用户权限管理
mysql-用户权限管理目录 用户管理创建mysql账号权限管理(建号常用)用户管理主要为了控制权限,让不同开发者,仅能操作属于自己的业务范围内的数据 创建mysql账号账户中涉及三个数据: 账户名: 用户名密码ip地址: 如果是本机,可以不写,@+主机地址端口号: 默认为3306,可以不写cre...
2832 0
MySQL 授予普通用户PROCESS权限
在MySQL中如何给普通用户授予查看所有用户线程/连接的权限,当然,默认情况下show processlist是可以查看当前用户的线程/连接的。     mysql> grant process on MyDB.
976 0
MySQL 查看用户授予的权限
在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限。具体分类如下:     全局层级   全局权限适用于一个给定服务器中的所有数据库。
800 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13168 0
6967
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载