Questions tagged «permissions»

通过操作系统,数据库管理器或其他系统的安全性机制授予帐户或角色的特权。

19
开发人员应该能够查询生产数据库吗?
是否应授予开发人员查询(SELECT/只读)生产数据库的权限?我以前工作过的地方是开发团队db_datareader。我现在工作的地方,开发团队甚至无法连接到生产实例。 测试实例之一是每周一次从生产备份还原的生产副本,因此开发人员实际看到数据没有任何问题。 有什么好的理由不允许开发人员查询生产(除了不希望他们有权读取敏感数据外)?

7
使用psql列出数据库特权
我正处于数据库服务器迁移的中间,无法确定(在此处进行搜索和搜索之后)如何使用psql命令行工具在PostgreSQL上列出数据库特权(或整个服务器上的所有特权)? 我在Ubuntu 11.04上,我的PostgreSQL版本是8.2.x。



1
如何在DATABASE vs SCHEMA上为用户管理默认特权?
我想将一个相当简单的内部数据库驱动的应用程序从SQLite3迁移到PostgreSQL 9.3,并在我进行操作时加强数据库中的权限。 该应用程序当前包含一个用于更新数据的命令。和一个查询它。当然,我还需要以其他方式维护数据库(创建新表,视图,触发器等)。 虽然此应用程序最初将是服务器上唯一托管的应用程序,但我更倾向于假设将来它可能与其他数据库一起托管在服务器上,而不是在必要时稍后进行争夺。未来。 我认为这些是相当普遍的一组要求,但是我很难找到一个简单的教程来解释如何使用这种用户/特权分离在PostgreSQL中设置新数据库。有关组,用户,角色,数据库,架构和域的参考详细介绍。但我发现它们令人困惑。 到目前为止,这是我尝试过的内容(来自psql“ postgres”): CREATE DATABASE hostdb; REVOKE ALL ON DATABASE hostdb FROM public; \connect hostdb CREATE SCHEMA hostdb; CREATE USER hostdb_admin WITH PASSWORD 'youwish'; CREATE USER hostdb_mgr WITH PASSWORD 'youwish2'; CREATE USER hostdb_usr WITH PASSWORD 'youwish3'; GRANT ALL PRIVILEGES ON DATABASE hostdb TO hostdb_admin; GRANT CONNECT …

4
创建的用户无需任何授权即可访问PostgreSQL中的所有数据库
关于设置PostgreSQL,我一定会有所遗漏。我想做的是创建多个彼此隔离的数据库和用户,以便特定用户只能访问我指定的数据库。但是,根据我的判断,任何创建的用户都可以访问所有数据库,而无需给予任何特定的授权。 这是我在Ubuntu Server 12.04上执行的操作: apt-get安装postgresql sudo -u postgres createuser -DRSP mike1(指定新用户的密码) 须藤-u postgres createdb data1 psql -h localhost -U mike1 data1(指定用户mike1登录的密码) 似乎新用户“ mike1”可以毫无问题地连接到数据库“ data1”并创建表等。而且这根本不需要运行任何GRANT命令(而“ data1”的所有者是“ postgres”,因为我没有指定步骤3中的所有者)。这真的应该是这样吗? 我想做的就是授予mike1对data1的完全访问权限,然后对更多的用户和数据库重复此操作,以确保用户只能访问我选择的一个(或可能多个)数据库。

3
为什么允许新用户创建表?
我想知道为什么允许新创建的用户连接到数据库后创建表。我有一个数据库,project2_core: postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ---------------+--------------+-----------+-------------+-------------+------------------------------- postgres | postgres | SQL_ASCII | C | C | project2_core | atm_project2 | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | project2=CTc/project2 template0 | postgres | SQL_ASCII | C | C | …

4
如何在Mysql中更改VIEW的DEFINER?
当我运行mysqldump时,出现错误: mysqldump: Got error: 1449: The user specified as a definer ('root'@'foobar') does not exist when using LOCK TABLES 这是有道理的,因为foobar不再有旧机器。 如何将所有表的定义器更改为'root'@'localhost'?

2
oracle-列出有权访问某些表的用户
我敢肯定这已经被问过了,但是我似乎找不到下面的相关细节。 是否有某种可以完成以下操作的预建表(我使用过dba_tab_privs,但是它是有限的,不能满足我的所有需求),如果没有人有一些查询来回答以下问题? 列出所有被分配了特定角色的用户? 列出授予用户的所有角色? 列出授予用户的所有特权? 列出某个角色赋予SELECT访问权限的表? 列出用户可以从中选择的所有表? 列出所有可以在特定表上进行SELECT的用户(通过授予相关角色或通过直接授予(即,可以在joe上进行授予选择))?该查询的结果还应显示用户通过哪个角色拥有此访问权限,或者它是否是直接授予权限。

4
我应该明确拒绝不应该更新的列吗?
我习惯在非常安全的环境中工作,因此我将权限设计为非常精细。我通常要做的一件事是显式地DENY使用UPDATE不应该更新的列的功能。 例如: create table dbo.something ( created_by varchar(50) not null, created_on datetimeoffset not null ); 设置值后,永远不要更改这两列。因此,我明确DENY了UPDATE他们的权限。 最近,在一个团队会议中,开发人员提出了一个观点,即确保字段永远不会更新的逻辑应该包含在应用程序层而不是数据库层中,以防“他们出于某种原因需要更新值”。对我来说,这听起来像是典型的开发者心态(我知道,我曾经是一个!) 我是公司的高级架构师,我一直致力于使应用程序正常运行所需的最少特权。所有权限都会定期审核。 在这种情况下,最佳做法是什么?

2
SQL Server-授予对整个架构与对象的权限?
对于SQL Sever中的数据库权限管理,我感到非常高兴。 让我们保持一个简单的例子。 假设帐户“ admin”是架构A,B和C的所有者。 您想要在架构A,B和C下创建的任何对象(表/视图)具有完全权限(更新/删除/插入/选择/更改)的另一个帐户“ minion”。 这可能吗?还是您每次在这些模式下添加表/视图时都必须执行Grant语句?(对我来说似乎有点愚蠢)。

3
授予文件系统对SQLSERVERAGENT虚拟帐户的访问权限
我正在尝试NT Service\SQLSERVERAGENT根据此问题中的标记答案授予Windows帐户文件系统访问权限。我相信这是一个虚拟服务帐户,并且不会显示在控制面板->用户帐户区域中。 如何授予该服务帐户访问文件系统的权限?特别是在Windows 7上。 我已经阅读了几种方法,但似乎没有一种方法可供我选择。我尝试使用PowerShell方法,但是AD命令不是有效命令。我什至下载并安装了这些命令所需的Windows补丁。我还读到我应该能够通过SQL Server配置管理器或Management Studio来执行此操作。不过,我似乎无法弄清楚在何处调整这些权限。 SQL Server代理进程无法启动,并显示以下错误消息: Login failed for user 'NT SERVICE\SQLSERVERAGENT'. Reason: Failed to open the explicitly specified database 'msdb'. [CLIENT: <local machine>] 根据我的Google搜索,它与该帐户的权限有关。 我不确定数据库是否损坏,但是它表示数据库处于正常状态。SQL Server代理登录是sysadmin和public组的一部分。


4
授予运行SQL Server作业的权限
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 我在MSSQL Server 2005上有一份工作,希望允许任何数据库用户运行。 我不担心安全性,因为作业实际工作的输入来自数据库表。仅运行作业,而不向该表添加记录将无济于事。 我只是找不到如何授予工作公开权限。 有什么办法吗?在这一点上,我唯一能想到的就是让这项工作持续运行(或按计划进行),但是由于它只需要很少做任何实际工作(也许每几个月一次),我确实希望这项工作能够尽快完成,这似乎不是最佳解决方案。

4
为什么批量插入被认为是危险的?
此问题是从Information Security Stack Exchange 迁移的,因为可以在Database Administrators Stack Exchange上回答。 迁移 2年前。 我想了解为什么一般的网络安全团队(我处理过的一个以上的组织BULK INSERT)对于向应用程序和数据库程序员授予(例如TSQL)权限是一成不变的?我无法相信“填补磁盘滥用”的借口,除非我遗漏了一些东西,因为最终结果与执行类似操作的应用程序没有什么不同: for (long i = 0; i < LONG_MAX; ++i) executeSQL("INSERT INTO table VALUES(...)"); 并且INSERT是具有基本写权限的任何人都可以执行的常见DML命令。 为了使应用程序受益,BULK INSERT它效率更高,速度更快,并且使程序员无需解析SQL之外的文件。 编辑:我最初在信息安全站点上问这个问题是有原因的-不是DBA反对使用BULK INSERT,而是“信息保证”(IA简称-网络安全人员)正在迫使该问题。我让这个问题再讲一两天,但是如果批量操作确实确实绕过了约束或触发器,我可以看到这是一个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.