小编Jon*_*gel的帖子

动态维度安全

我在 SSAS 2012 中有一个大约有 30 个维度的多维数据集,其中一个是Company.

Company维度包含公司列表,多维数据集中有数百家公司。我们的安全模型要求用户只能Company看到分配给他们的那些值。

在我们的SQL Server环境中,我们控制通过一系列的功能,此访问JOIN中编VIEW秒。这些函数返回一个列出所有Company值的表,用于过滤结果。

例如:

CREATE VIEW dbo.FakeView
AS
SELECT d.*
FROM FunctionToGetAccess(SYSTEM_USER) f
INNER JOIN DataTable d
    ON d.CompanyID = f.CompanyID
Run Code Online (Sandbox Code Playgroud)

有没有办法将这个逻辑或类似的逻辑移植到 SSAS 中的维度级别安全性?

一些注意事项:

  • 立方体将在一夜之间重建
  • 安全性不必每小时更新一次,但应在整夜的多维数据集处理过程中重新处理
  • 我强烈希望不必将用户列表和允许的客户端具体化到表或维度中

security sql-server ssas sql-server-2012 dimension

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

SSRS 似乎忽略了使用报表管理器设置的权限

我在本机模式下在 SQL Server 2008 上设置了 SSRS。

作为管理员,我可以登录报表管理器,上传报表并运行它们,还可以使用 Web 服务 URL 生成报表。

我还在机器上创建了一个本地用户,我以管理员身份进入报告管理器,并在顶级设置权限,应该将本地用户分配给所有角色。

当我以该用户身份登录机器,然后导航到报告管理器时,我只看到页面的标题,但看不到任何配置的文件夹。

我已经检查过,文件夹被设置为继承父权限,它们也在那里显示新创建的本地用户。

我设置了权限似乎很奇怪,但 SSRS 仍然没有显示我应该能够看到的内容。除了在报表管理器中配置权限之外,我还需要采取其他步骤吗?

以新创建的本地用户身份登录时:

Report Manager - Shows the heading for the page, but no folders/items

Web Service URL (http://machine/ReportServer) - rsAccessDeniedError
Run Code Online (Sandbox Code Playgroud)

security sql-server permissions ssrs

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

TEMPDB 日志文件

我想将tempdb日志文件存储在与用户数据库日志文件相同的驱动器上、与tempdb数据文件相同的驱动器上,还是单独的驱动器上?

sql-server tempdb transaction-log

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

同步数据库以进行服务器转换

我正在从一个旧的 web/sql 盒子过渡到一个完全不同的主机上的更强大的解决方案(800hosting 到 RackSpace)。

我们的应用程序对正常运行时间有很高的要求。它 24x7x365 全天候运行并影响数以千计的站点,我希望确保在过渡期间尽可能减少停机时间。(不要问我们现在是如何用一个盒子解决这个问题的。)

我的 Web 服务器计划是一些 DNS 工作,将新的子域指向新的服务器设置,并转发来自现有服务器的请求。这将照顾到足够快地将每个人翻转到新的网络框。问题是数据库 - 我如何保持同步,直到我准备好打开网站上的开关(或者是否值得付出努力,而不是仅仅接受停机来停止应用程序、备份、压缩、传输和恢复?)。

一些细节。我们在旧系统上运行 Sql2k5,在新系统上运行 2k8r2。数据库本身的主数据库约为 30 演出,仓库约为 60 演出。我可以忍受仓库的停机时间,但真的想尽量减少对主数据库的影响。

关于将数据库从旧设置迁移到新设置的最佳方法有什么建议吗?

sql-server-2005 sql-server migration sql-server-2008-r2

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

合并复制死锁

我在某些合并复制数据库的 msmerge_contents 表上遇到了一个非常令人困惑的问题。似乎我在表 msmerge_contents 的同一索引上的完全相同的行上收到了死锁。
这是我目前看到的死锁 xml。根据我可以告诉索引名称的信息:1 表示聚集索引(查看关联的 objid)。所以它是相同的 i/o 路径并且行 hashid 是相同的 (b5f70c321dc6),即同一行。一个过程是我相信合并代理运行的 msmakegeneration(在这种情况下每分钟),另一个过程是调用的触发器(每次请求表更新时)。任何人都可以对这个问题有所了解,我仍在学习僵局,对我来说这没有意义。谢谢

<deadlock-list>
    <deadlock victim="process8f31f9498">
        <process-list>
            <process id="process8f31f9498" taskpriority="5" logused="2616" waitresource="KEY: 20:72057594653704192 (b5f70c321dc6)" waittime="1925" ownerId="3680081779" transactionname="user_transaction" lasttranstarted="2012-10-05T10:02:01.223" XDES="0x8f3b283a8" lockMode="U" schedulerid="7" kpid="11784" status="suspended" spid="252" sbid="0" ecid="0" priority="-5" trancount="2" lastbatchstarted="2012-10-05T10:02:01.177" lastbatchcompleted="2012-10-05T10:02:01.177" lastattention="1900-01-01T00:00:00.177" clientapp="GN-SQL-GW_National-GW_National Publicati-vz-sql-59" hostname="GN-SQL" hostpid="19364" loginname="DCSINFOSYS\SQLServer" isolationlevel="read committed (2)" xactid="3680081779" currentdb="20" lockTimeout="4294967295" clientoption1="673384544" clientoption2="128024">
                <executionStack>
                    <frame procname="mssqlsystemresource.sys.sp_MSmakegeneration" line="337" stmtstart="29568" stmtend="29880" sqlhandle="0x0300ff7fa885d0f97c6e5901f39f000001000000000000000000000000000000000000000000000000000000">
update dbo.MSmerge_contents with (rowlock) set generation = @target_gen 
                where generation = @gen and tablenick = @art_nick     </frame> …
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock merge-replication

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

在 SQLCLR 中使用系统 message_id 引发错误

如果调用CREATE DATABASE foo两次,我会收到错误消息:

Msg 1801, Level 16, State 3, Line 1
Database 'dropme' already exists. Choose a different database name.
Run Code Online (Sandbox Code Playgroud)

错误消息列在sys.messages 中

SELECT * FROM sys.messages WHERE message_id = 1801 AND language_id = 1033
Run Code Online (Sandbox Code Playgroud)

我有一个 SQLCLR 过程,它基本上可以执行CREATE DATABASE FOR ATTACH. 它一开始就知道创建的数据库的名称,但在附加之前做了很多工作。因此,我想在继续之前确保数据库不存在,如果存在则给出该错误。

如果我尝试在该消息上使用RAISERROR(1801, 16, 1)它不会让我:

Msg 2732, Level 16, State 1, Line 1
Error number 1801 is invalid. The number must be from 13000 through 2147483647 and it cannot be 50000.
Run Code Online (Sandbox Code Playgroud)

除了引发错误并使 msg_id …

sql-server sql-server-2008-r2 error-handling

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

AUTO_UPDATE_STATISTICS_ASYNC 开启?

有人建议我设置AUTO_UPDATE_STATISTICS_ASYNC ON可能是个好主意。我一直在阅读一些想法,但仍然不确定,因为这是一个非默认设置。

有什么进一步的建议吗?

sql-server statistics

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

更改 SQL Server 服务登录帐户有什么影响?

更改 SQL Server 服务登录帐户有什么影响?我的默认实例目前使用网络服务。我想将其更改为域帐户。有什么影响吗?

security sql-server

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

跟踪对表的授予权限

我想看看授予特定表的权限是否有任何更改。

例如,我不想让登录名“John”拥有SELECT对表 Invoices的权限。

如果这个许可是GRANTed给约翰的,我想知道。我想知道是谁授予了他的许可,什么时候授予的。

我正在使用 SQL Server 2012 企业版。

sql-server audit permissions sql-server-2012

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

同一 SAN 磁盘上的多个 SQL Server 数据文件

我目前正在创建一个新数据库,以前只使用过一个数据文件和一个日志文件。我在网上做了一些关于多个数据文件的好处的研究,但我发现关于单个磁盘上多个数据文件的好处的意见不一。所以我的问题是:如果我唯一可用的磁盘是 SAN 磁盘,我会看到将数据拆分为 4 个单独文件的任何性能优势(例如多线程/并行处理)吗?使用单个文件会更好吗?

此外,将索引(可能还有存档表)分离到同一磁盘上不同文件上的自己的文件组中是否有任何性能优势?这只会提供行政利益吗?

谢谢!

sql-server storage san datafile

6
推荐指数
2
解决办法
3670
查看次数