mysql 获取所有用户所有权限存储过程
2013-01-16 17:45
761 查看
自己写的一个存储过程!一次性获取mysql所有用户的所有权限列表!
做权限列表统计的时候这个非常爽!
嘿嘿,其实上面这个存储过程还可以用游标来实现!
之所以没用游标,是想上面这种方法在某些方面可以替代游标!
做权限列表统计的时候这个非常爽!
DELIMITER $$ USE `mysql`$$ DROP PROCEDURE IF EXISTS `proc_GetUserPriv`$$ CREATE DEFINER=`root`@`%` PROCEDURE `proc_GetUserPriv`( ) COMMENT '获取账号权限信息列表' BEGIN # 获取用户总数,用于循环判断 SET @counts = (SELECT COUNT(*) FROM `user`); SET @i = 1; WHILE (@i <= @counts) DO -- SELECT CONCAT(`user`,'@',"'",`host`,"'") INTO @sql2 FROM USER LIMIT 2, -- set @SQL1 = concat('SELECT',CONCAT(`USER`,"@'",`HOST`,"'"),'into @SQL2 FROM USER LIMIT ',@i,",1"); -- 这句会导致错误 SET @SQL1 = CONCAT('select concat(','"',"'",'"',',user,','"',"'",'"',',','"@',"'",'",host,"',"'",'")',' into @SQL2 from user limit ',@i,",1"); PREPARE smtm1 FROM @SQL1 ; EXECUTE smtm1; DEALLOCATE PREPARE smtm1; SET @sql3 = CONCAT("show grants for ",@SQL2); PREPARE smtm2 FROM @sql3; EXECUTE smtm2; DEALLOCATE PREPARE smtm2; SET @i = @i + 1; END WHILE; END$$ DELIMITER ;
嘿嘿,其实上面这个存储过程还可以用游标来实现!
之所以没用游标,是想上面这种方法在某些方面可以替代游标!
相关文章推荐
- mysql 给普通用户public授予创建存储函数、存储过程的权限
- MySQL用户执行存储过程的权限
- MySQL 用户执行存储过程的权限
- MySQL 用户执行存储过程的权限
- mysql+asp.net开发注意大全:mysql创建数据库的时候,创建新用户,并且付给权限。mysql存储过程的编写,mysql数据库引擎的区别,mysql数据库文件夹备份
- MySQL, 创建一个只读用户和一个所有权限用户
- MySQL调用存储过程显示非当前用户
- 获取dba权限的存储过程
- MySQL查看所有存储过程,函数,视图,触发器
- Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...)
- 如何只授予用户查看存储过程定义的权限
- Mysql 命令行查询用户权限host所有用户
- Yii2调用mysql存储过程获取返回值
- oracle 存储过程给另一个用户的权限问题
- 获取所有SQL Server 2005存储过程的简便方法
- SQLServer获得所有用户存储过程、根据存储过程名称获得内容、获得数据库对象创建脚本
- all权限用户无法执行存储过程
- Mysql存储过程——多结果集返回与java获取
- mysql存储过程中定义权限
- mysql查看所有存储过程,函数,视图,触发器,表