小编Sol*_*zky的帖子

在存储过程创建期间重新创建用户和架构

如主题中所述,当与我一起工作的开发人员创建存储过程时,正在创建新用户和架构。最初我为该开发人员分别创建了一个用户和登录名,但后来都删除了。但是,每当他们运行脚本来创建 SP 时,都会重新创建以他们的 Active Directory 名称命名的用户和架构,并将 SP 放置在该“新”架构中。

即使我删除了 SP、用户和架构,如果他们再次创建 SP,用户和架构也会回来。

有没有人对此有任何见解?

schema sql-server stored-procedures users sql-server-2016

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

如何强制系统管理员将数据存储在 dbo 以外的模式中?

我正在使用 GUI 工具在我的 SQL Server 2016 数据库中上传数据。用于上述任务的用户已被授予 sysadmin 权限,我创建了一个专用架构来存储上述数据。这个架构是拥有的,默认为上述用户。问题是,当我上传数据时,它存储在 dbo 模式而不是专用模式中,我无法从该用户那里撤销 sysadmin priv。

请让我知道如何在不撤销 sysadmin priv 的情况下将数据上传到这个专用模式?

谢谢

schema security sql-server role t-sql

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

授予用户还原数据库的权限

在数据库中,我创建了一个具有以下角色的用户:

服务器角色

  • 民众

数据库角色

  • db_backupoperator
  • db_ddladmin
  • db_datareader
  • db_datawriter

问题是我不想更改用户的角色,但我想授予恢复数据库的权限。

是否有解决方法只授予还原权限但不删除或更改数据库?

背景资料:

我工作的公司创建了一个应用程序,他们希望该应用程序的用户有权备份和恢复数据库,但不能创建另一个数据库或删除现有数据库。而且,他们不希望有另一个具有 角色的用户db_owner,这将允许客户随心所欲地操纵事物。

该应用程序的价格取决于客户拥有的员工人数,因此在客户端安装该应用程序时,他们使用一个文件来创建一个数据库,在其中指定所有详细信息(包括员工人数),但他们担心有人可能会多次更改文件并添加数据库,因此他们希望通过不授予任何用户执行任何操作的权限来保护实例。这很复杂,但这正是他们想要的。

sql-server permissions role restore sql-server-2019

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

PostgreSQL 的“collat​​es”中的“-x-icu”是什么意思?

我有这个查询:

SELECT * FROM table ORDER BY label ASC;
Run Code Online (Sandbox Code Playgroud)

由于标签不是英文的,它们没有按正确的顺序排序(以“ö”开头的标签不在底部/末尾)。

因此,我尝试:

SELECT * FROM table ORDER BY label COLLATE "sv-SE" ASC;
SELECT * FROM table ORDER BY label COLLATE "sv_SE" ASC;
Run Code Online (Sandbox Code Playgroud)

这些给出了关于那些不存在的排序规则的错误,这让我感到困惑。

经过一番搜索,我想出了这样做:

SELECT * FROM pg_collation;
Run Code Online (Sandbox Code Playgroud)

这表明它应该是:

sv-SE-x-icu
Run Code Online (Sandbox Code Playgroud)

当我使用该标识符时它起作用了,但是“-x-icu”的东西有什么用?那是怎么回事?我讨厌他们总是不得不弄乱标准的语言环境标识符,所以你永远不能只依赖标准的“language_location”格式。

postgresql collation unicode international-components-unicode

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

当字符串包含阿拉伯语单词时,如何在 SELECT CASE 中创建新列?

我的 select case when 语句有问题,我想在 select case when 语句中添加一个新列,我得到了结果,但是?????因为我已将该列设置为阿拉伯语单词,所以我试图转换新列nvarchar(55)不幸的是,我得到了相同的结果。

我怎样才能得到正确的结果?

SELECT case when ( CAST(o.startTime as time(7)) > cast(Start as time(7))) 
          then  cast('????' as nvarchar(55))
          else cast('????' as nvarchar(55)) end as stat,
       userId, FirstName
from   Users, TimeTable
Run Code Online (Sandbox Code Playgroud)

sql-server collation case encoding unicode

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

如何将整个数据库加载到内存中?

我想将整个数据库加载到内存中,但是我该怎么做呢?我有大约 256 GB 的内存,我的数据库大约有 200 GB,所以我可以轻松地处理内存。

当我执行select count(*) from table1sqlserver 自动将表加载到内存之后,我可以非常快速地使用表,但我想知道如何将整个数据库加载到内存中?

如果我select count(*) from在每个表上都这样做,我可以更快地工作,但是有没有其他方法可以将整个数据库加载到内存中?我想通过一个命令加载整个数据库,而不是一个select count(*) from表一个表。

sql-server optimization memory cache sql-server-2014

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

sp_send_dbmail 在结果集中的所有字符之间填充 00 位

我在每晚触发的 SQL 代理作业中使用 sp_send_dbmail。该作业查询我们的数据库并检查产品价格更新,如果有,它将通过电子邮件作为附件发送给我们的电子商务供应商。他们有一些自动流程,他们会更新我们的电子商务平台,但是他们的自动流程无法处理 sp_send_dbmail 提供的文件。sp_send_dbmail 似乎在结果集中的所有字符之间放置了空字符。

查看在十六进制编辑器中打开 csv 的结果:

十六进制捕捉

通过文本编辑器查看我看到的预期:

文字捕捉

sp_send_dbmail 在这里查询:

    SET @FileName = 'Update_' + CONVERT(VARCHAR(12),GETDATE),105) '.csv'        
    SET @Query = 'Some Query'

    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'me@domain.com'
        @query = @Query
        @attach_query_result_as_file = 1
        @query_attachment_filename = @FileName
        @query_result_separator = ','
        @query_result_no_padding =  1
    END
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

****编辑补充说明****

使用 Microsoft SQL Server 2008 R2 排序规则为 Latin1_General_CI_AS

离开 no_padding 会在每个返回的字段中留下几个尾随空格。每个空格 (20) 由​​空值 (00) 分隔

NoPadCapture

sql-server t-sql database-mail encoding unicode

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

为什么 dbo 是 Microsoft SQL Server 中唯一的授予者?

我不明白为什么 dbo 是 SQL Server 中唯一的授予者?还是我错了?

我的意思如下:无论我当前以哪个用户登录 SQL Server Management Studio,当我转到 Securables 下的数据库属性并授予用户一些权限并保存它并返回到 Securables 时:dbo 是显示为这些权限的授予者,这些权限是我之前授予的,而不是当前登录的用户。

为什么会这样?

在哪种情况下,我可以将 dbo 以外的其他用户视为授权人?

谢谢

sql-server permissions t-sql

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

在 Microsoft SQL Server 中还原数据库是否会将对象添加到资源数据库?

据我所知,资源数据库包含有关其服务器实例中所有对象的信息,因此我认为当您从备份文件恢复数据库时,该过程的一部分是在服务器资源中注册其对象是很自然的数据库,但我找不到有关该主题的任何具体信息,也无法在本地对其进行测试。

sql-server metadata restore system-databases sys

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

为什么不同语言有不同的数据库排序规则?

有不同的数据库排序规则,我想知道不同语言需要不同的数据库排序规则。

sql-server collation

0
推荐指数
1
解决办法
1554
查看次数