我目前正在实施监视系统,其中一部分包括监视MySQL数据库的某些方面,例如:
可以使用非常简单的查询找到这三件事:
SELECT viable_candidate FROM sys.gr_member_routing_candidate_status
SELECT COUNT(1) FROM db1.tableX
SELECT SUM(column3) FROM db2.tableY
但是,这随后需要创建一个具有至少3个整个数据库/表的读取权限的用户帐户。
有没有一种方法可以限制对仅的给定查询结果的访问?我想知道是否要创建一个额外的数据库,该数据库以某种方式链接到上述3个查询的输出,然后创建一个只能访问该数据库的新用户,但是我不确定该技术是什么,或者它如何工作?
谢谢!
答案 0 :(得分:2)
Create a view based on each query,然后是grant only a select permission to such view。
示例:
CREATE VIEW dbo.view_name AS
SELECT viable_candidate
FROM sys.gr_member_routing_candidate_status
然后
GRANT SELECT ON dbo.view_name TO 'user1'@'localhost'