Nel*_*son 27 mysql permissions view grant database-permissions
以下问题适用于MySQL 5.1.44
假设我有一个表,其中包含由我的应用程序的不同用户插入的记录.如何授予特定用户访问权限,仅查看该表中的记录?我已经考虑VIEW用他/她的记录创建一个,但我不知道如何创建一个只能看到它的mysql用户VIEW.
那么,是否有可能创建一个只能访问单个用户的mysql用户VIEW?这个用户也可以这样做,以便他们只读访问权限VIEW吗?
谢谢!
PS:在我的例子中,我称之为用户的是真正的附属办事处,他们希望使用自己的应用程序访问他们的记录.
Nak*_*lda 35
GRANT SELECT ON database1.view1 TO 'someuser'@'somehost';
Dex*_*ang 10
除了
GRANT SELECT ON <database_name>.<view_name>
TO <user>@<host>
IDENTIFIED BY '<password>'
Run Code Online (Sandbox Code Playgroud)
它也更好
GRANT SHOW VIEW
ON <database_name>.<view_name> TO <user>@<host>
IDENTIFIED BY '<password>'
Run Code Online (Sandbox Code Playgroud)
这样很多SQL UI工具都可以获得视图定义并适合视图.
小智 6
我相信最初的问题实际上是问如何将行限制为给定用户拥有的行。(为每个用户创建一个视图,然后授予该视图的想法似乎是一种解决方法。)
您可以通过将 user() 引用插入数据表中,然后对其进行过滤来完成此操作。
使用MySQL 5.6。创建一个视图,将 SELECT 限制为仅当前用户拥有的记录:
-- check the current user
select user();
create table t1 (myId int, mydata varchar(200), myName varchar(200));
insert t1 select 1, 'my data yes', user();
insert t1 select 2, 'my data yes2', user();
insert t1 select 3, 'my data no', 'joe';
select * from t1;
create or replace view v1 AS
select * from t1 where myName = user();
select * from v1;
Run Code Online (Sandbox Code Playgroud)
GRANT SELECT ON <database name>.<view name>
TO <user>@<host> IDENTIFIED BY '<password>'
Run Code Online (Sandbox Code Playgroud)
来源:MySQL文档
| 归档时间: |
|
| 查看次数: |
72504 次 |
| 最近记录: |