AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[permissions](dba)

Martin Hope
deadLock
Asked: 2025-02-07 07:12:01 +0800 CST

SQL Server 中的 AD 组权限在两台服务器之间表现不同[重复]

  • 5
这个问题已经有答案了:
SQL Server:个人登录和组成员身份的相互作用 (1 个答案)
16 天前关闭。

我有 2 个运行 SQL Server 2019 的 SQL Server。它们每个都有一个使用 Windows 身份验证(AD 组)“SG-GroupA”的 SQL 登录,并且该组中有 5 个 Windows 用户。

每个服务器上都有一个名为 DbFoo 的数据库,SG-GroupA 的登录名映射到 DbFoo,并且该数据库的角色成员资格是公共的,并且是 db_datareader。

我已经验证了登录名存在,并且用户存在于两个数据库中。当该组中的用户登录到 SQL Server 并尝试查询 DbFoo 时,他们在服务器 A 上得到了正确的结果。当他们在服务器 B 上运行相同的查询时,他们收到错误“数据库 DBFoo 不可访问。”

作为对服务器 BI 的额外测试,我创建了一个全新的数据库,其中包含一个用户 SG-GroupA,当有人尝试查询数据库中的表时,再次出现错误。在服务器 A 上执行相同的测试不会出现任何错误,一切正常。我可以从哪里开始调试此问题?

permissions
  • 2 个回答
  • 46 Views
Martin Hope
folow
Asked: 2025-01-14 18:55:01 +0800 CST

如何在模式上分配 SELECT 但如何在模式中的特定表上分配 DENY?

  • 5

在 Linux 上的 Db2 v11.5 上,我有几个数据库,其中包含 MYSCHEMA 模式中的数百个表。

要求

a) 我需要为 MYSCHEMA 模式中的所有表分配 SELECT 权限,但不包括用户不得访问的特定表 MYSCHEMA.NO_ACCESS。

b) 如果在 MYSCHEMA 模式中创建了新表,我需要手动在新表上添加 GRANT SELECT。我希望在创建新表时避免任何类型的安全管理。

c) 当我们从审计公司进行审计时,需要简单地提供一些用户拥有和不拥有哪些访问权限的信息。拥有数百个授权很难向用户表明他们确实只拥有他们需要的访问权限。

当前解决方案

目前,我们授予除表 MYCHEMA.NO_ACCESS 之外的所有表的选择权限,如下所示:

GRANT SELECT ON TABLE MYSCHEMA.TAB1 TO GROUP GROUP1
GRANT SELECT ON TABLE MYSCHEMA.TAB2 TO GROUP GROUP1
...
GRANT SELECT ON TABLE MYSCHEMA.TAB5000 TO GROUP GROUP1 
(make sure there is no MYSCHEMA.NO_ACCESS on grant list)

上述方法有局限性,当在 MYSCHEMA 模式中创建新表时,我需要在新表上设置 GRANT SELECT。

另外,在审计时由于有大量的权限,很难证明用户确实只拥有他们应该拥有的权限。

如果可能的话,采取新方法

Db2 v11.5 对模式具有 GRANT SELECTIN 权限。

有没有类似的东西:

GRANT SELECTIN ON SCHEMA MYSCHEMA TO GROUP GRUP1
DENY SELECT ON TABLE MYSCHEMA.NO_ACCESS TO GROUP GROUP1

拒绝比授予更重要。

或者还有其他方法吗?

permissions
  • 2 个回答
  • 86 Views
Martin Hope
mcswiggen
Asked: 2024-01-26 19:49:48 +0800 CST

MS SQL - 查看敏感度分类的最低权限

  • 5

我想向一些用户组提供查看敏感度分类的访问权限。目前它在报告工具中返回空白结果,或者直接查询 sys.sensitivity_classifications 表。

可用于提供只读视图的最小权限集是多少(默认权限还是自定义权限)?

permissions
  • 1 个回答
  • 19 Views
Martin Hope
Alejandro
Asked: 2023-12-29 03:00:19 +0800 CST

无法撤销 Redshift 上的权限

  • 5

我在撤销权限时遇到问题,导致我无法删除用户

select usename, acl.*
from pg_default_acl as acl join pg_user on usesysid = defacluser
where usename = 'user1';

给我:

|usename|defacluser|defaclnamespace|defaclobjtype|defaclacl             |
|-------|----------|---------------|-------------|----------------------|
|user1 |143       |0              |r            |{user1=awdRxt/user1}|

使用亚马逊 ( ) 提供的视图,v_get_obj_priv_by_user我执行此操作以获取具有该用户权限的架构/数据库:

select 'alter table '+schemaname+'.'+tablename+' owner to y;' from pg_tables where tableowner like 'user1';

select distinct 'revoke all on schema '+schemaname+' from user1;' from admin.v_get_obj_priv_by_user where usename like 'user1';

select distinct 'revoke all on all tables in schema '+schemaname+' from user1;' from admin.v_get_obj_priv_by_user where usename like 'user1'

从之前的查询中得到了这 2 个回复

revoke all on schema xxx from user1;

revoke all on all tables in schema xxx from user1;

我运行它们,没有错误,但权限仍然存在,并且使用的查询v_get_obj_priv_by_user不断返回相同的结果。

显然,当我稍后尝试删除用户时,会出现以下错误:

SQL 错误 [2BP01]:错误:无法删除用户“user1”,因为某些对象依赖于它详细信息:属于用户 user1 的新关系的默认权限的所有者

知道我做错了什么吗?谢谢!

permissions
  • 1 个回答
  • 17 Views
Martin Hope
Paul Zahra
Asked: 2023-09-25 17:16:08 +0800 CST

SAGE ODBC 驱动程序 - 所需的最低文件夹权限

  • 5

我有一个网站,我想使用其专有的 ODBC 驱动程序连接到 SAGE ACCDATA 文件夹(该文件夹位于不同的服务器上,但与 Intranet 服务器位于同一网络上)。

出于安全目的,我试图找出允许此连接所需的最小文件夹权限。

如果我向文件夹授予“Everyone”权限,则无论应用程序池身份如何,连接都会正常工作,同样,如果我向文件夹授予“网络”安全主体/SID(包含通过网络连接登录的所有用户的组)。无论应用程序池身份如何,连接都可以正常工作。

我似乎在任何地方都找不到这个文档,事实上,我能找到的关于 ODBC 的唯一文档说给它“每个人”,没有提到“网络”!

PS 我知道我应该保留 admin 作为权限,那很好,我想锁定实际的 ODBC 所需权限以读取数据。

permissions
  • 1 个回答
  • 16 Views
Martin Hope
adam78
Asked: 2023-03-03 19:39:16 +0800 CST

MySQL 8 无法执行 FLUSH TABLES 访问被拒绝

  • 6

我有一个 MySQL 8 数据库,我向其授予了如下所有权限的用户:

GRANT ALL ON test_db.* TO 'test_user'@'%';

当我以该用户身份登录 mysql 并运行以下命令时,出现错误提示ERROR 1227 (42000): Access denied; you need (at least one of) the RELOAD or FLUSH_TABLES privilege(s) for this operation

FLUSH TABLES;

我认为 GRANT ALL 权限已经给了这个用户 RELOAD 或 FLUSH_TABLES 权限?

我该如何解决?

permissions
  • 1 个回答
  • 20 Views
Martin Hope
Widforss
Asked: 2022-10-19 04:47:42 +0800 CST

运行 Ola Hallengren 的 IndexOptimize 存储过程的用户需要哪些权限?

  • 6

我计划使用 Azure 数据工厂将我的索引维护与我的 Azure SQL 数据库(无服务器)中的其他作业进行协调。该作业将由我的 ADF 服务的托管身份运行,并且 MI 已添加到“db_datareader”、“db_datawriter”和“db_ddladmin”角色,并被授予 EXECUTE 权限。

统计信息更新有效,但之后我收到此错误:

Sql 错误号:50000。错误消息:Msg 297,用户无权执行此操作。

我的 MI 缺少哪些权限?如果可能,我想避免将其设为“db_owner”

permissions
  • 1 个回答
  • 19 Views
Martin Hope
dezso
Asked: 2022-10-06 01:16:57 +0800 CST

用户可以从模式中删除表,但不能创建一个

  • 5

在 Azure Synapse 专用 SQL 池中,我有以下设置:

-- a custom DB role to manage privileges
CREATE ROLE [owner];

-- there is a schema owned by this role
CREATE SCHEMA [myschema] AUTHORIZATION [owner];

-- an Azure AD group to allow its members to log in
CREATE USER [radish] FROM EXTERNAL PROVIDER;

-- the AAD group is a member of the owner role
EXEC sp_addrolemember 'owner', 'radish';

-- privileges are assigned exclusively through custom DB roles
GRANT ALTER, CONTROL on SCHEMA::[myschema] TO [owner];

如果我作为 AAD 组的成员登录,radish则无法在以下位置创建表myschema:

CREATE TABLE [myschema].[test] (id int);

Msg 6004, Level 14, State 9, Line 1
User does not have permission to perform this action.

一旦我获得 Synapse 管理员角色,就可以了。(当一个成员时,SESSION_USER是dbo。)这并不奇怪,因为这个角色基本上可以做给定工作区的 SQL 池中的所有事情。

但是,当我从 Synapse 管理员角色中删除自己时,会发生以下情况:

DROP TABLE [myschema].[test];
-- completes successfully, but then:

CREATE TABLE [myschema].[test] (id int);

Msg 6004, Level 14, State 9, Line 1
User does not have permission to perform this action.

可能我对彼此之间的必要特权CREATE TABLE和DROP TABLE相互关联的理解是完全错误的,但直到现在我认为这是两者都需要的相同特权。有人可以告诉我我的想法在哪里错了吗?

到目前为止,我看到了以下可能性:

  • 该owner角色不适用于仅间接成为其成员的用户(即通过 AAD 组的成员身份) - 这似乎与https://learn.microsoft.com/en-us/azure/synapse-analytics/security相矛盾/how-to-set-up-access-control#step-8-add-users-to-security-groups
  • 拥有足够权限时创建的表由我自己拥有,而不是架构所有者角色。“警告”部分与以下内容相矛盾:“对架构具有 ALTER 权限的用户可以创建架构所有者拥有的过程、同义词和视图。” 此外,sp_tables报告owner为table_owner.

另外,有趣的是,我可以GRANT ALTER, CONTROL on SCHEMA::[myschema] TO [owner];成功地创建表,而创建表失败。

sql-server permissions
  • 1 个回答
  • 173 Views
Martin Hope
nam
Asked: 2022-09-13 13:15:29 +0800 CST

对所有表授予 SELECT、UPDATE、DELETE、ALTER 的权限

  • 2

在 SQL Server 2019 中,我创建了一个用户定义的数据库角色MyDbRole。
现在我想为MyDbRole数据库中的所有表授予以下权限。

CREATE, SELECT, UPDATE, DELETE, ALTER

问题:完成此任务需要什么最小权限。如果我要请求 DBA 给我一个权限,以便我可以授予以下MyDbRole权限,我应该向 dba 请求什么权限。我猜,它与WITH GRANT OPTION,但我不太确定我需要什么许可?

更新:请注意,我们不允许使用内置数据库角色,例如 db_datawriter、db_ddladmin,因为这些角色会给用户提供比所需更多的权限)。参考

sql-server permissions
  • 2 个回答
  • 92 Views
Martin Hope
Hrvoje T
Asked: 2022-05-25 14:38:50 +0800 CST

如何允许远程 MSSQL 用户批量插入我的本地 txt 文件?

  • 0

我的本地 PC 上有一个 txt 文件。我运行连接到远程 MSSQL 的本地 Java 应用程序。现在我需要将该文本文件中的批量插入到我的数据库表中。

但是,SQL 登录无法读取我的文件。我得到:

原因:com.microsoft.sqlserver.jdbc.SQLServerException:无法批量加载,因为无法打开文件“D:/My_Files/my_file.txt”。操作系统错误代码 21(设备未准备好。)

我为“所有人”设置了 My_Files 文件夹的权限。我无法创建与 SQL 登录名相同的 Windows 用户,因为它对于 Windows 用户来说太长了。有解决办法吗?

sql-server permissions
  • 1 个回答
  • 228 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve