在SQL数据访问中如何对不同级别设置访问权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL数据访问中如何对不同级别设置访问权限相关的知识,希望对你有一定的参考价值。

在SQL中如何使总经理,经理,员工分别设置访问数据库访问权限?意思是:在网页登陆后不同级别的人员可以进行有不同级别权限访问数据库望能有详细代码或具体步骤!

参考技术A 你把你设计的功能分成若干块(抽象上)然后给不同的用户赋予不同的访问功能的权限(比如做到
用户登录
那里,检测用户可以访问哪些页面,就在菜单处显示出来,不允许访问的不显示。并且在各个页面load过程中检测用户是否越权访问。)

对两个不同用户的 BigQuery 数据访问权限,无需复制数据

【中文标题】对两个不同用户的 BigQuery 数据访问权限,无需复制数据【英文标题】:BigQuery data access to two different users without duplicating data 【发布时间】:2017-12-15 10:33:40 【问题描述】:

我们有两种类型的用户和两个项目。

用户:

应该访问表中所有数据的管理员 应该能够查询表的某些列的用户 如下图所示,访问数据应该是这样的,不重复数据:

由于无法根据列授予用户访问权限(甚至不能基于表,因为 BigQuery 的访问控制只是在数据集级别),因此想到的最简单的解决方案是:

在两个不同的数据集或项目中复制数据,一个包含所有数据,另一个包含第二组可以查询的列。

我们如何在不重复数据的情况下找到解决方案?

【问题讨论】:

视图实际上是完美的解决方案。为什么你认为用户仍然可以查询整个表?您可以限制他们在底层 SQL 中的每个视图中看到的列。 cloud.google.com/bigquery/docs/share-access-views 为什么说 VIEW 不是正确的解决方案?您只授予 VIEW 权限,这样他们就无法查询其他列。 我写的视图不是正确的解决方案,因为我想我应该直接将用户添加到表中以便能够查询,因为错误是说用户在表上没有足够的授权.比我阅读了@GrahamPolley 在他的评论中的链接,我发现我必须与视图共享表格,而不是直接与用户共享。 @GrahamPolley:请提供您的评论作为答案,然后我接受它作为正确答案,如果没有,请告诉我这样做。谢谢! @Majico - 还要检查 ***.com/a/45991950/5221944 以获取其他“技巧”:o) 【参考方案1】:

视图实际上是您问题的完美解决方案。您只需在视图的底层 SQL 中限制每个组在每个视图中看到的列。

更多详情见:

https://cloud.google.com/bigquery/docs/share-access-views BigQuery Authorized View over multiple projects

【讨论】:

以上是关于在SQL数据访问中如何对不同级别设置访问权限的主要内容,如果未能解决你的问题,请参考以下文章

mysql 权限设置

关于权限控制中的数据访问权限问题

MySQL中的基本SQL语句

如何授予用户对 SQL Server 中数据库的读取权限?

如何正确封装对具有(几乎)相同架构的不同数据库系统的访问?

如何设置MSSQL数据库访问用户及访问权限