标签: owner

有没有办法同时设置 PostgreSQL 数据库中所有对象的所有者?

Stack Overflow Q & A Modify OWNER on all table 同时在 PostgreSQL 中描述了一些漂亮的方法来将表和其他对象更改为特定用户,并且它工作得很好,但是所有的建议似乎都忽略了我创建的函数。

是否有一种相当简单的方法来重置数据库中所有对象的所有者,包括函数?手工操作是非常不可取的。

postgresql metadata ddl functions owner

14
推荐指数
2
解决办法
2万
查看次数

跨同一数据库内的多个架构选择权限

客户要求我实施一些用于报告目的的视图,这些视图将通过 PowerBI、Excel 和 SSRS 访问。指定的用户将只能访问该视图,并且该用户必须不能使用任何基础表。

我遇到的问题是视图中的 SQL 涉及 3 个不同的模式(都在同一个数据库中):

  • 瞳孔
  • 提供者
  • 安全

观点是:

CREATE VIEW dbo.vTestPermissions
AS
SELECT a.Column1,
       b.Column1,
       c.Column1
FROM Pupil.Table1 a
JOIN Provider.Table2 b ON a.Column1 = b.Column1
JOIN Security.Table3 c ON a.Column1 = c.Column1
Run Code Online (Sandbox Code Playgroud)

表/视图的所有者如下:

  • 瞳孔.Table1 - 所有者瞳孔
  • Provider.Table2 - 所有者提供者
  • Security.Table3 - 所有者安全
  • vTestPermissions - 所有者 dbo

当我从视图中选择时,出现错误:

对象“table3”、数据库“TEST”、架构“Security”的 SELECT 权限被拒绝

我曾尝试在SELECT有和没有GRANT模式和表选项的情况下授予权限,但这使用户可以使用基础表。

对此的任何帮助将不胜感激。

sql-server permissions sql-server-2008-r2 view owner

5
推荐指数
1
解决办法
1181
查看次数

我可以更改 cdc 架构的所有者吗?

我已使用以下命令在数据库上启用了更改数据捕获 (CDC)exec sys.sp_cdc_enable_db

这将创建一个由cdc用户拥有的新cdc架构

select
    s.*
    , dp.name
from sys.schemas as s
join sys.database_principals as dp
    on dp.principal_id = s.principal_id
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

因为我想利用所有权链接并使用 proc 从此架构中读取数据,所以我可以将所有者更改为dbo吗?

ALTER AUTHORIZATION ON SCHEMA::cdc TO dbo
Run Code Online (Sandbox Code Playgroud)

此命令起作用并更改所有者。但疾病预防控制中心已经启用了一段时间,我担心未来会进一步破坏一些东西。

security change-data-capture owner sql-server-2019 schema-migration

5
推荐指数
1
解决办法
221
查看次数

“架构所有者”的目的是什么?

如果我创建一个新架构并将架构所有者设置为另一个架构,例如 dbo,那么这对我的新架构有何意义?

我的新架构是否继承了其所有者 dbo 的相同权限?

schema sql-server sql-server-2008-r2 inheritance owner

4
推荐指数
1
解决办法
2838
查看次数

如何使用 PostgreSQL 将表和序列所有者更改为另一个用户?

在用户下创建这些表和序列postgres

表创建模式

SET search_path TO main;
CREATE TABLE table1 ...
CREATE TABLE table2 ...
CREATE TABLE table3 ...
Run Code Online (Sandbox Code Playgroud)

序列创建模式

CREATE SEQUENCE main.seq1...
CREATE SEQUENCE main.seq2...
CREATE SEQUENCE main.seq3...
Run Code Online (Sandbox Code Playgroud)

现在想将它们全部更改为另一个名为 的所有者user1。如何在不重新创建这些对象的情况下使用它们?

postgresql owner

3
推荐指数
1
解决办法
8928
查看次数

如何更改 SQL Server 中新数据库的默认数据库所有者?

我有理由更改我的计算机名称(it\xe2\x80\x99s 在虚拟机中运行)。我有一个现有的 SQLExpress 实例,它是在重命名之前安装的。

\n

有些功能会失败,因为新数据库仍然由旧所有者创建。更具体地说,当我尝试创建新的数据库图表时,出现以下错误。

\n
\n

无法获取有关 Windows NT 组/用户 \'OLDNAME\\user\' 的信息,错误代码 0x534。(微软 SQL Server,错误:15404)。

\n
\n

我使用以下说明来重命名服务器:

\n
sp_dropserver \'OLDNAME\\SQLEXPRESS\';\nGO\nsp_addserver \'NEWNAME\\SQLEXPRESS\',\'local\';\nGO\n--  Restart Server\nSELECT @@SERVERNAME;    --  NEWNAME\\SQLEXPRESS\n
Run Code Online (Sandbox Code Playgroud)\n

但是,这并不影响新数据库的默认所有者。它们仍在与所有者一起创建OLDNAME\\user,但所有者已不存在。

\n

我知道如何在创建后更改现有数据库的所有者。但是,如何才能让新数据库拥有正确的所有者呢?

\n

sql-server logins owner

2
推荐指数
1
解决办法
3136
查看次数