我已经搜索过这个问题,但找不到答案。或者,我找到的答案与 SQL Server 相关。这是为了MySQL 5.x
。
无论如何,假设我有一个名为的表Employees
,在该表中,我有各种列,例如:
id, lastname, firstname, salary, ssn, hiredate
现在,我有一些用户需要能够从VIEW而不是TABLE中进行选择。
例如:
--user a
select * from employee_view;
--shows:
id, lastname, firstname, hiredate
--user a
select * from employee; // access denied (didn't use view)
然后我有一个HR User
:
--HR user
select * from employee_view;
-- shows:
id, lastname, firstname, ssn, salary, hiredate
-- HR user
select * from employee; // access denied (didn't use view)
有什么办法可以做到这一点?
谢谢。
我自己想出来了。
首先,我创建了一个仅对某些列(不是全部)具有权限的帐户。然后我为这些列创建了一个视图并使用用户作为定义者。
然后,我创建了另一个测试帐户并只授予他们对该视图的权限。
因此测试用户看不到基础表,只能看到视图和列。
效果很好。