问题标签 [database-permissions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1919 浏览

django - django-guardian 示例源代码

谁能推荐一个使用 django-guardian 的优秀开源应用程序?我在理解 API 时没有遇到问题,但我很想看一个例子来了解实现最佳实践(数据库设计等)

0 投票
8 回答
3740 浏览

mysql - 用于编辑 MySQL 表权限的工具?

有没有一种工具可以使在 MySQL 数据库上编辑用户权限的任务变得更容易?我有近 100 个表可供 4 个用户使用,每个用户都有不同的每表授权,这通过 phpMyAdmin 变得乏味。当我稍后对数据库结构和用户列表进行更改时,它会变得更加烦人。我也看不到在 MySQL Workbench 中执行此操作的方法。

是否有任何权限管理工具可以更轻松地管理表权限?

更新:为了澄清,我需要一个可以为用户管理每个模式和每个表权限的工具。稍后我将更改权限,因此它需要能够完全管理现有权限以及授予新权限。MySQL Workbench 允许管理每个模式的权限,但不能管理每个表。

0 投票
2 回答
2296 浏览

php - ACL 建模 - 如何管理访问控制列表的“层次结构”?

我仍在从事我的 ACL 项目,我想对以下问题提出一些想法:

我使用 MySQL 来存储我的用户、角色和权限。起初,我在我的 TABLE Roles 中创建了一个字段“parent_id”,并试图通过它来管理每个用户的权限。这是一种工作,直到我意识到如果我添加一个新角色,管理层次结构和控制谁可以访问哪个资源真的很复杂。我做了一些搜索,我意识到使用关系数据库来处理层次结构真的很复杂,所以我放弃了使用层次结构。

我希望您能帮助我找到管理用户创建的最佳解决方案:我有 4 个不同的用户:SuperAdmin、CustomerAdmin、技术员、客户。例如,当我在页面中创建新用户时,我不想让技术人员创建类型为 CustomerAdmin 或 SuperAdmin 的新用户。

我想只让超级管理员创建一个新用户,但我的一个限制是我必须让客户管理员也创建用户,也是技术人员。

试图更具说教性,超级管理员可以是我。客户管理员是我的客户,他有一个企业。在他的企业中,他可以创建 2 类用户:技术人员和客户。

这只是一个例子,但是如果我想创建一种新的角色来赋予他新的权限,我必须找到一种方法来拒绝他创建一个比他更强大的用户的权限。

我不确定我的问题是否客观,但欢迎任何可以与我谈论这个问题的人。

0 投票
1 回答
4662 浏览

database - 在 Oracle SQL Developer 中限制用户只能访问他自己的表

我对 SQL Oracle Developer 中的权限和特权感到困惑。创建的用户可以访问所有 schema/user 的表。我想限制数据库中的特定用户只能访问(ALTER、DROP、UPDATE 等)他自己的表。谁能指定我如何执行此任务。

我的意思是从系统权限中选择哪些权限,以便用户只能访问他自己的表。谢谢

0 投票
1 回答
10525 浏览

oracle - 如何在我刚刚在另一个模式中创建的包中执行过程?

设置: 我有两棵在 Oracle 11g 上运行的脚本树——一组确保正确的实例配置,并且所有 DBA 代理帐户都在那里连接到 dbadmin 帐户,另一组构建和修改我们的数据库环境。

问题: 代理到 DBADMIN 帐户,第二组脚本运行良好,除了一个部分:数据预填充。允许加载数据的过程在适当的模式下创建得很好,如果作为 SYS AS SYSDBA 运行,加载数据的脚本运行得很好,但是当我在创建它调用的过程后立即尝试以 DBADMIN 运行它时接听PLS-00904: insufficient privilege to access object schema.package每个电话。我什至无法拥有脚本GRANT EXECUTE ON schema.package TO DBADMIN,因为(当然)会产生预期的ORA-01749: you may not GRANT/REVOKE privileges to/from yourself错误。

更简单地说:

(作为 DBADMIN :)

(成功,并且可以测试工作)(后来,在由同一父脚本调用的另一个脚本中,仍然是 DBADMIN :)

(引发上面给出的 PLS-00904 - 权限不足)

关于如何让 DBADMIN 帐户 EXECUTE 访问它尚未创建的包的任何想法,或者 DBADMIN 如何在不停止整个脚本流的情况下自行访问,注销并以 SYS AS SYSDBA 身份重新登录以授予它?(这里的重点是在最初的“运行这个脚本树”之外有零手动步骤,并且在使用 SYS AS SYSDBA 时只有一次。)

0 投票
3 回答
11571 浏览

tfs - TF246017 打开 TFS 管理控制台时出错

当我使用自己的域帐户登录到我们的 TFS 服务器并尝试打开 TFS 管理控制台时,我收到以下错误:

TF246017: Team Foundation Server 无法连接到数据库。验证托管数据库的服务器是否可操作,并且网络问题是否不会阻止与服务器的通信。

TFS 数据库在 TFS 服务器上本地运行。当我使用本地计算机管理员帐户(可能是用于安装 TFS 的帐户)登录到 TFS 服务器时,管理控制台加载正常,没有任何错误。因此,我使用 SSMS 查看了本地 TFS 数据库及其登录名,你瞧,本地 TFS 服务器用户帐户列出了完全权限,但我的域帐户没有。因此错误。

最后,我的问题。我想做是为特定用户提供对 TFS 数据库的权限(从而能够在没有错误的情况下运行管理控制台),例如本地管理员帐户。不是通过 SSMS 将每个用户添加为登录名,而是有一个 TFS 组,我可以将它们添加到该组中,该组会自动授予他们对 TFS 数据库的权限?这样会显得干净一些。

谢谢。

0 投票
2 回答
34626 浏览

php - 当mysql命令行工作时,为什么PHP PDO会得到“SQLSTATE [42000] [1044]用户访问被拒绝”?

在过去的几个小时里,我一直用力将它撞在墙上,我的头都在流血。:(

正如标题所示,我创建了一个 MySQL 用户,可以从数据库服务器上的mysql命令提示符访问数据库。但是,当我尝试实例化一个新的 PDO 对象以使用同一用户访问数据库时,我得到:

这是我创建用户的方式:

这里可能有什么问题?!请有人给我一块骨头!(仅供参考,当我尝试创建一个新的 PDO 对象时会出现问题......我捕获了一个 PDOException ,这就是消息)。

我在授予后执行了 FLUSH PRIVILEGES,这是 SHOW GRANTS 的输出:

这是这个用户的 mysql.db 的样子:

如果重要的话,这是一个在 Ubuntu 12.04 LTS 上运行的四节点 MySQL 集群。

编辑:我发现只有当我尝试使用 Zend AMF 访问服务器时才会出现问题。任何想法为什么 PDO 不能与 Zend AMF 一起使用?我可能错过了 Zend AMF 设置中的某些内容吗?

0 投票
2 回答
2570 浏览

java - java.sql.SQLException:安装 2 年后出现的用户“xx@xx.xx”(使用密码:YES)的访问被拒绝

我开始得到

从 servlet 尝试将新数据添加到数据库时。无论错误如何,数据仍会写入数据库。该数据库已经存在 2 年以上,并且没有对数据库、用户等进行任何更新。我想知道是否有人以前遇到过这个问题。

我试图不惜一切代价避免重新安装mysql。

mysql 日志文件 /var/log/mysql.log 似乎为空。tomcat5.5 日志只有几行信息。

我正在使用 MySQL 5.0.51a-24+lenny1 (Debian) 运行 Tomcat 5.5

谢谢!

0 投票
4 回答
3727 浏览

sql-server - SQL Server 2012 - 网络访问的文件表权限

我有一个 sql server 2012 实例设置为联网服务器上的文件存储。我需要同一网络上计算机上的所有用户都能够浏览代表文件表的文件系统。但是,所有用户都可以看到服务器和顶级目录,但无权访问/打开它。

我应该查看哪些权限才能启用访问权限。

0 投票
1 回答
15797 浏览

sql-server - 如何理解 SQL Server 中的主体?

这听起来很愚蠢,但我发现它真的很混乱:在 MSDN 中,定义是可以请求 SQL Server 资源的实体。基本上有三种类型的主体:Windows 级主体、SQL Server 级主体和数据库级主体。到目前为止还好。只是它给我的印象是一个主体的标识符应该与其他主体的标识符不同,无论这个原理是什么类型。(如果这三种类型的所有主体都可以排列在一个表中,它们将具有唯一的标识符)

令人困惑的部分来自以下这三个查询:

1)

(注意:我在一个数据库上运行它)

2)

现在我知道第一个返回数据库用户主体,而第二个返回服务器用户主体(如果我错了,请纠正我)。但是为什么第一个查询中的一行可以与第二个查询具有相同的 principal_id 呢?例如,数据库主体中的一行将是:

名称:INFORMATION_SCHEMA,principal_id:3

而第二个查询的一行是

名称:系统管理员,principal_id:3

这两个 principal_id 是什么?正如我所提到的,我认为两个主体的标识符会不同,即使一个是 DB 用户而另一个是服务器用户(从名称中我假设 principal_id 是标识符)。

好吧,如果 principal_id 对于所有主体来说不是唯一的,而只是在每个查询的范围内是唯一的(第一个查询中的 principal_id 只是数据库用户的标识符,所以它可能与服务器用户的标识符相同),我然后有第三个查询,但不明白这是什么意思:

3)

如果两个 principal_id 仅在它们的范围内是唯一的,那么在两个 principal_id 上进行内部连接意味着什么?内连接意味着这个列是共同唯一的,对吧?

一定有一些非常基本的东西我误解了。感谢您提供任何帮助!