我有一个 AD 组XYZ,我已将其添加到具有data_reader权限的SQL Server 安全性中。
该XYZ组中有大约 10 名能够成功访问 SQL Server 数据库的用户。我最近向该组添加了一个新用户(在 AD 级别),但此人无法访问 SQL Server(通过 Mgmt Studio)并且他收到以下错误
用户登录失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。检查以前的错误。
错误:18456,严重性:14,状态:11。
我已经验证 AD 权限设置正确,用户已重新启动他的机器,他不属于任何具有DENY访问权限的组,并且 SQL ServerXYZ组已被删除并读取到 Mgmt Studio 中的 SQL Server 实例,并且服务器已重新启动。
关于如何进一步进行的任何想法?
谢谢!
我有一个包含超过 10 亿条记录的表,它有 6 个索引(包括聚集索引 (ID))。我需要在带有日期列的新聚集索引上对该表进行分区。我在 ldf 文件中有足够的空间 (150gb) 在索引重建的情况下增长(tempdb 关闭)。
请帮助我以一种有效的方式在新的分区功能/方案上重建索引。这两种方法中的哪一种是一种高效且资源消耗较少的方式(或推荐任何其他方法)?
1.
2.
谢谢
在我的一个生产数据库中,我有一个包含 3 个数据文件的文件组,这些文件位于 3 个不同的磁盘上。此文件组上有 50 多个表。
如何确定 3 个数据文件之间 50 个表中每一个的位置?我需要知道每个表的聚集索引驻留在哪个数据文件上。
例子 :
Table A : Datafile 1 : FG1
Table B : Datafile 2 : FG1
Table C : Datafile 1 : FG1
Table D : Datafile 3 : FG1
Run Code Online (Sandbox Code Playgroud) 在单个 SQL Server 2016 数据库上运行多租户应用程序。我有一个 RLS(行级安全性)谓词customer_id(每个租户唯一)并且该列存在于所有表中。
CREATE FUNCTION dbo.[RLSPredicate] (@CustomerId bigint)
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN SELECT 1 AS RLSPredicateResult WHERE (@CustomerId =
CAST(SESSION_CONTEXT(N'customer_id') AS bigint))
GO
-- two table example
CREATE SECURITY POLICY [dbo].[RLSPolicy]
ADD FILTER PREDICATE [dbo].[RLSPredicate] ([customer_id]) ON [dbo].[user],
ADD FILTER PREDICATE [dbo].[RLSPredicate] ([customer_id]) ON [dbo].
[user_email]
WITH (STATE = ON, SCHEMABINDING = ON)
GO
-- Sample Query
EXEC sp_set_session_context @key=N'customer_id', @value='1231312'
select top 1000 * from [user] where customer_id = 1231312
Run Code Online (Sandbox Code Playgroud)
使用上面的设计,EXEC …