AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

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

Mobile menu

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

问题[permissions](dba)

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
Martin Hope
Crescent
Asked: 2022-05-17 08:27:14 +0800 CST

尽管用户拥有 db_datareader,但仍将对新模式的访问限制为特定角色?

  • 0

我正在使用不是我设计的 SQL Server 2016 数据库,也无法从根本上更改安全结构。我知道这可能是垃圾/最差的做法,但我必须玩我目前处理的那手牌。我试图限制对模式的访问仅限于角色的成员,但每个人似乎都有 db_datareader 成员资格。以下是详细信息:

我们将 ETL 将一些新数据写入现有数据库中他们自己的表中。所有这些“新”表都需要访问限制,因此只有某些用户可以查看。这是我的想法(使用假名):

  1. 创建名为“secret_schema”的新模式
  2. 创建 2 个新角色:'secret_schema_owner' (owner = dbo) 和 'secret_schema_reader' (owner = 'secret_schema_owner')
  3. 将“secret_schema”的所有者设置为“secret_schema_owner”角色
  4. GRANT SELECT ON SCHEMA::secret_schema TO secret_schema_reader

这里的目标是只有“secret_schema_reader”角色的成员才能查看“secret_schema”模式内的表中的数据。问题是这个数据库的前任管理员只是将用户“db_datareader”授予数据库,这似乎胜过我尝试的角色安全性。

除了对安全/权限结构进行全面改革外,我还有其他选择吗?

sql-server permissions
  • 1 个回答
  • 132 Views
Martin Hope
InteXX
Asked: 2022-04-22 07:17:49 +0800 CST

尝试向 Azure SQL 特殊角色“dbmanager”添加登录时出错

  • 2

在 Azure SQL 实例上运行这些命令时:

CREATE LOGIN test WITH PASSWORD=N'Passw0rd'
GO

ALTER ROLE dbmanager ADD MEMBER test
GO

...我收到一个错误:

Cannot add the server principal 'test', because it does not exist or you do not have permission.

我也试过这个:

ALTER SERVER ROLE dbmanager ADD MEMBER test
GO

我已经验证登录存在。我以服务器的系统管理员身份登录。

显然,我在一年前就能让它工作:如何将登录名添加到 dbcreator 角色?但那是那时,这就是现在。它行不通。

然而,基本问题仍然相同:我需要能够在给定登录名的范围内创建一个数据库,然后让该登录名能够操作新数据库(包括 DDL),所有这些都无需通过 db 进行手动干预脚本。(这用于实体框架代码优先迁移,如果它不存在,可以配置为自动创建连接字符串中命名的数据库。)

SQL Server 中存在此功能(通过向dbcreator角色添加登录名),但 Azure SQL 被证明是一个更难破解的难题。

另外:我注意到Special Roles 的文档中存在冲突,并且我已经就此事提出了一个问题。我不知道这是否与我的错误有关,但我认为值得一提。

如何启用登录以在 Azure SQL 中创建新数据库,以使登录作为具有读/写/ddl 权限的用户自动添加到新数据库中?

sql-server permissions
  • 1 个回答
  • 82 Views
Martin Hope
elbarna
Asked: 2022-04-11 05:43:37 +0800 CST

Oracle:对授予我的用户的权限有点困惑

  • 0

我想在我的数据库上向我的非 dba 用户授予很少的权限。我给创建会话,创建表,视图等。这个查询似乎证实了

SELECT privilege from USER_SYS_PRIVS;

    PRIVILEGE
    ------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE
CREATE VIEW
CREATE TABLE
CREATE SESSION

但我看到我可以将角色和用户创建为非特权用户

create role mich identified by blablabla;

Role created


SQL> create user mich1 identified by blablabla;

User created

对于一个简单的用户来说,创建用户和角色的权限是不是太多了?

作为 DBA 用户,我尝试撤销...

SQL> revoke create user from myuser;
revoke create user from myuser
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'MYUSER'

我检查我的用户是否具有 dba 角色(我以 dba 用户身份执行这些命令)

SELECT granted_role FROM dba_role_privs where grantee='MYUSER';

GRANTED_ROLE
--------------------------------------------------------------------------------
IMP_FULL_DATABASE
RESOURCE
MICH
EXP_FULL_DATABASE
CONNECT

SQL> revoke DBA from myuser;
revoke DBA from myuser
*
ERROR at line 1:
ORA-01951: ROLE 'DBA' not granted to 'MYUSER'

我从我的“非特权”用户中删除了 MICH 和 RESOURCE 角色,但他仍然可以创建其他用户和角色。

另一个奇怪的事情:

作为非特权用户,我做了..

SQL> select * from SESSION_PRIVS;

PRIVILEGE
------------------------------------------------------------------------------------------------------------------------
AUDIT SYSTEM
CREATE SESSION
CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
CREATE USER
BECOME USER
ALTER USER
DROP USER....

-- 其他 69 行..

作为一个 sysdba 我做了..

revoke CREATE USER from myuser
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'MYUSER'
oracle permissions
  • 2 个回答
  • 84 Views
Martin Hope
Manngo
Asked: 2022-03-13 23:47:05 +0800 CST

创建可插拔数据库后权限不足

  • 1

我不得不承认我对这个可插入数据库的东西一无所知。我在 PostgresSQL、MySQL、SQL Server 方面有经验,但 Oracle 让我失败了。

我在 Docker 映像中运行 Oracle 18c。我想创建一个名为bookshop. 按照一些说明,我运行了以下命令:

CREATE PLUGGABLE DATABASE bookshop ADMIN USER pdb_adm IDENTIFIED BY Oradoc_db1
    file_name_convert=('/opt/oracle/oradata/XE/pdbseed','/opt/oracle/oradata/XE/BOOKSHOP');

接下来在说明中,我运行:

ALTER PLUGGABLE DATABASE xepdb2 OPEN READ WRITE;

除了我不能。我收到消息:

ORA-01031: 权限不足。

然后我尝试:

DROP PLUGGABLE DATABASE bookshop;

我得到了同样的信息。

当我尝试:

SELECT vp.name, vp.open_mode
FROM v$pdbs vp;

我明白了

姓名 OPEN_MODE
PDB$种子 只读
XEPDB1 读写
XEPDB2 读写
书店 已安装

最后,当我试图弄清楚我是谁时:

SELECT user FROM dual;

我明白了SYSTEM。

在这一点上,我不知道如何控制这个可插入的数据库。我需要切换到其他用户吗?如何?

permissions oracle-18c
  • 1 个回答
  • 165 Views
Martin Hope
Adam Mulla
Asked: 2022-03-10 03:56:38 +0800 CST

无法在 PostgreSQL 12.4 中删除用户

  • 1

我无法删除用户,因为我收到默认权限错误。

postgres=# drop user xyz;
ERROR: role "xyz" cannot be dropped because some objects depend on it
DETAIL: owner of default privileges on new functions belonging to role xyz

然后我检查了数据库中的默认权限,

 postgres=# \ddp
Default access privileges
Owner | Schema | Type     | Access privileges
---- -+------- +----------+-------
xyz   |        | function |

你能告诉我如何撤销这个默认权限吗?

postgresql permissions
  • 2 个回答
  • 199 Views

Sidebar

Stats

  • 问题 199037
  • 回答 263511
  • 最佳答案 131755
  • 用户 66345
  • 热门
  • 回答
  • 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