我们公司有几个远程站点,今天其中一名员工来找我,说他们的 SQL 报告工具停止工作。直到此时,我什至不知道此服务器、数据库或报告服务存在!
我有对服务器的 RDP 访问权限并且可以打开SQL Server Management Studio 2008 R2并且数据库似乎是SQL Server Express. 目前,我可以使用我的域管理员帐户登录到该实例,但是当我尝试扩展它时,每个数据库都会给我以下消息:
他们访问报告的网页给了他们以下错误:
• An error has occurred during report processing. (rsProcessingAborted)
o Cannot create a connection to data source 'DNPDataSource'. (rsErrorOpeningConnection)
? For more information about this error navigate to the report server on the local server machine, or enable remote errors
Run Code Online (Sandbox Code Playgroud)
当我尝试查看 SQL Server 错误日志时,出现此错误:

我没有sa密码。我不是 DBA,但需要尝试解决这个问题,有人能指出我开始解决这个问题的方向吗?我完全迷失了。
这是 ERROR.LOG
2013-03-27 13:14:24.34 Server Microsoft SQL Server 2008 R2 (SP1) - 10.50.2550.0 …Run Code Online (Sandbox Code Playgroud) 在性能方面,如果我有这样的表:
CREATE TABLE [TESTDATA].[TableA](
[Col1] [nchar](5) NOT NULL,
[Col2] [nchar](2) NULL,
[Col3] [float] NULL
CONSTRAINT [TableA_PK] PRIMARY KEY CLUSTERED
(
[Col1] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
然后像这样创建一个非聚集索引:
CREATE NONCLUSTERED INDEX [_idx_TableA]
ON [TESTDATA].[TableA] ([Col2])
WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
如果我对表执行更新,只有更改Col3数据库才需要触摸索引_idx_TableA吗?
只是好奇性能对所有索引的影响有多大?
performance index sql-server-2008 sql-server-2008-r2 nonclustered-index
我们有一个 SQL Server 2008 数据库,并且限制了所有表和视图远离特定用户 ID。多年来,我们根据用户需要一次授予一个表和视图。
我们必须这样做,因为供应商提供public了开箱即用的角色的读/写访问权限,因此我们必须为此用户创建一个角色,删除所有访问权限并仅授予他们需要的权限。
今天我们将创建一个仅包含这些表和视图的复制数据库,以便用户可以在不降低生产系统的情况下运行报告。问题是我不确定该用户可以访问哪些表和视图,因为多年来许多人一次授予访问权限。
是否有查询来检查此用户的访问权限?
PS 我是一名应用程序开发人员,所以请根据需要随意解释这一点。
编辑 - 最初如何创建角色和访问权限
------------------------------
-- CREATE ROLE db_finrep_deny
------------------------------
DECLARE @RoleName sysname
set @RoleName = N'db_finrep_deny'
IF EXISTS (SELECT * FROM sys.database_principals WHERE name = @RoleName AND type = 'R')
Begin
DECLARE @RoleMemberName sysname
DECLARE Member_Cursor CURSOR FOR
select [name]
from sys.database_principals
where principal_id in (
select member_principal_id
from sys.database_role_members
where role_principal_id in (
select principal_id
FROM sys.database_principals where [name] = @RoleName AND type = 'R' )) …Run Code Online (Sandbox Code Playgroud) 我正在执行以下命令以从 SQL Server 中的存储过程中停止远程服务器上的服务。
----------------
-- Stop Service
----------------
SET @Command = 'sc \\' + @Server + ' stop ' + @ServiceName;
EXEC master.dbo.xp_cmdshell @Command;
Run Code Online (Sandbox Code Playgroud)
根据服务,有时这会成功执行,但有时我会收到以下错误:
[SC] OpenService FAILED 5:
NULL
Access is denied.
NULL
NULL
Run Code Online (Sandbox Code Playgroud)
我很好奇什么用户执行命令。是我登录/连接到数据库的用户吗?或者是我登录物理服务器的用户?我可以通过不同的身份验证xp_cmdshell吗?
我正在尝试创建一个SQL Server 2008 R2只能从一个 SQL 视图中进行选择的新数据库用户。但是,无论我在以这个新用户身份登录时尝试什么,我都可以从任何表中进行选择。我运行了这个查询:
select princ.name
, princ.type_desc
, perm.permission_name
, perm.state_desc
, perm.class_desc
, object_name(perm.major_id)
from sys.database_principals princ
left join
sys.database_permissions perm
on perm.grantee_principal_id = princ.principal_id
WHERE princ.name = 'public'
AND object_name(perm.major_id) = 'User_Table'
Run Code Online (Sandbox Code Playgroud)
并得到这些结果:
name type_desc permission_name state_desc class_desc (No column name)
public DATABASE_ROLE DELETE GRANT OBJECT_OR_COLUMN User_Table
public DATABASE_ROLE INSERT GRANT OBJECT_OR_COLUMN User_Table
public DATABASE_ROLE REFERENCES GRANT OBJECT_OR_COLUMN User_Table
public DATABASE_ROLE SELECT GRANT OBJECT_OR_COLUMN User_Table
public DATABASE_ROLE UPDATE GRANT OBJECT_OR_COLUMN User_Table
Run Code Online (Sandbox Code Playgroud)
这是否意味着无论登录到数据库的任何人都具有基于“公共”权限的完全访问权限?
sql-server-2008 security sql-server permissions sql-server-2008-r2
我们公司中有一组用户直接针对我们的生产数据库运行报告。他们已经到了足以导致公司其他部门出现绩效问题的地步。
我想在我们的本地数据中心内为他们设置一个报告数据库。我们的生产数据库位于全国不同的数据中心。由于成本原因,我无法在托管生产数据库的数据中心启动另一个 SQL Server 数据库。
在做我的研究时,似乎推荐的方法是Distributor在与Publisher数据库不同的服务器上使用?
我想知道运行 SQL Server Express 的实例是否足以充当Distributor数据库的角色?这远程可行吗?

sql-server sql-server-2008-r2 sql-server-express reporting transactional-replication
sql-server ×4
index ×1
performance ×1
permissions ×1
remote ×1
reporting ×1
security ×1
ssms ×1
users ×1
xp-cmdshell ×1