我在一家新公司,我看到的第一件事是他们甚至不知道他们有多少个实例。他们没有密码,老 DBA 不知道他在做什么。
长话短说,我几乎可以在每台服务器上创建我自己的 sysadmin 帐户(我将所有数据库仅移动到 1 或 2 个实例),但有些我做不到。
在mssqltips 的这个链接中,有一个名为PsExec的工具。按照教程,我可以运行该程序并使用NT AUTHORITY\SYSTEM. 但它不起作用。NT AUTHORITY\SYSTEM是Public,我无法使用 sysadmin 添加我的帐户。该程序是否只能与 SQL 2008 一起运行?
没有办法停止服务器,因为我们的数据库在巴西各地运行。
这里的帖子数不胜数,但几乎每个人都需要重新启动SQL Server。
如何在不存在 sysadmin 帐户的情况下将 sysadmin 添加到 SQL Server 2008 中的用户(这个是关于该程序的,但正如我所说,它对我不起作用(他使用的是 2008))。
在这个视频中,他使用了这个-M方法。有人已经在 SQL Server 2014 上测试过了吗?我想知道,我会尝试。
我可以与NT AUTHORITY\SYSTEM用户连接,但是当我尝试创建 sysadmin 登录名或更改 sa 密码时,它说我无权这样做。然后,看看 nt 权利,它是公开的。我可以-m在我的机器上使用这个技巧来更改 sa 登录名,但我想要一些不需要关闭 SQL 的东西。
背景
我们需要 PCI-DSS 合规性,因此必须禁用 TLS1.0。在我的测试环境中,我们有 SQL Server 2014 SP1 和 CU 1(根据这篇文章)和 IIS 8 都在同一个盒子上。我使用Nartac IIS Crypto 工具禁用 TLS1.0 并重新启动。那是我的麻烦开始的时候。
SQL 代理无法启动,SSMS 无法连接到服务器,网站停止工作。(幸运的是,我能仍然使远程桌面连接到我的测试服务器。)
然后我读了微软的文章,它说基本上 SQL Server 只需要有 TLS1.0。
题
我可以解决这个问题吗?(也许我需要一个单独的盒子来测试 SQL Server?)
我有一种情况,虽然我能够解决它(如重现所示),但我不明白。以下是重点
EXEC(@sql)访问 ChainingDestination 中的表execute as子句定义的execute as条款,我会得到同样的错误。execute as条款,一切都很好。这是我感到困惑的倒数第二点。或者,具体地,为什么一个不工作,最后一个呢。
/******************************
Setup
******************************/
USE [master];
go
IF EXISTS (SELECT 1 FROM [sys].[databases] WHERE [name] = 'ChainingSource')
BEGIN
ALTER DATABASE [ChainingSource] SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [ChainingSource] SET ONLINE;
DROP DATABASE [ChainingSource];
END
IF EXISTS (SELECT 1 FROM [sys].[databases] WHERE [name] = 'ChainingDestination')
BEGIN
ALTER DATABASE [ChainingDestination] SET OFFLINE WITH …Run Code Online (Sandbox Code Playgroud) 作为理论测试(因为我想复习我对 SQL Server 安全性的理解)我想设置一个 SQL Server 登录,它只能看到一个数据库中一个表上的几个字段。
除了默认的 public,我没有为此登录分配任何角色。我不希望假设的用户具有任何服务器角色(即不是 sysadmin、dbcreator)……而且我不想为数据库使用任何标准角色(db_datareader 等)……
登录有默认数据库,登录映射到数据库(默认架构dbo)。现在,在用户安全对象中,我已授予对一张表的访问权限并使用列权限来指定列,但在测试登录时我真的没有做到这一点。
当我使用 SQL Server 身份验证和新登录名登录到 SSMS 时,除了 master/tempdb 之外,我看不到任何数据库...
我应该看到我的默认/映射数据库吗?我没有看到任何其他类似这样的问题,所以我猜我错过了一些完全明显的东西。
为了使用 sql 登录名登录到 SSMS,您是否必须拥有分配的服务器角色才能查看非系统数据库?当我添加 sysadmin 时我可以看到数据库,但随后我又回到了过度授权。
CREATE LOGIN [Chris_Test2] WITH PASSWORD=N'¯\Ï<ÞZcÅÎ5¿ûY!ËDåÜ''¨Äs»¾Þja7',
DEFAULT_DATABASE=[Finance_Receivables_TEST],
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO
USE [Finance_Receivables_TEST]
GO
/****** Object: User [Chris_Test2] Script Date: 01/18/2017 14:40:21 ******/
GO
CREATE USER [Chris_Test2] FOR LOGIN [Chris_Test2] WITH DEFAULT_SCHEMA=[dbo]
Run Code Online (Sandbox Code Playgroud) 描述:SSPI 握手失败,错误代码为 0x8009030c,在建立具有集成安全性的连接时状态 14;连接已关闭。原因:AcceptSecurityContext 失败。Windows 错误代码指示失败的原因。[CLIENT: 10.XXX.XX.XX} ***不同场合客户端地址不同
我可以将此问题提交给我的网络管理员吗?这是网络问题还是sql server问题。除了更改注册表还有其他方法吗?我可以安全地忽略这个错误吗?
对于存储在 PostgreSQL 9.5 数据库中的敏感信息的系统,必须安全地删除存储在表中的数据被删除(就像shred文件一样),并且即使特定数据集不会被删除,系统也是持久的,我正在尝试找出在删除表时安全删除基础数据文件的选项。
作为背景,我不是 DBA,但我是许多语言、上下文和数据库方面的经验丰富的实施者。我已经看过了,但一直没能找到一种方法来要求 PostgreSQLshred在表被DROPped时将它们释放到操作系统之前做相当于ding 其底层文件的工作。是否有内置方法可以要求 PostgreSQL 执行此操作?(我可能只是没有找到正确的东西 - 如果我错过了什么,我很抱歉,我很乐意接受滥用以及相关文档的链接)
我们正在查看的部分答案是在删除表之前手动粉碎给定关系及其索引的底层数据文件,但这不是那么优雅,我不确定它是否从表中获取所有信息我们需要删除。
我们还在研究粉碎数据磁盘上可用空间的策略 - 要么运行实用程序来执行此操作,要么定期复制数据卷,交换副本的结果,然后粉碎作为源的整个卷,以便其“可用”空间在此过程中被安全地覆盖。
我们错过了什么吗?还有其他我们没有找到的选择吗?如果我们必须手动清理,除了数据库文件夹中给定表的关系文件及其所有相关索引之外,还有其他地方需要粉碎数据吗?任何帮助或建议将不胜感激。
我正在考虑将我的大部分数据库转移到 Azure SQL 服务器数据库,但我担心 Microsoft 将能够窥探和查看数据库内部的数据,这是绝对不能接受的。
谢谢您的帮助。
我经营一个非营利组织,致力于分享类似于维基百科的数据。
我们最近有一个客户想要我们的数据库的副本,我们意识到通过使用 PostgreSQL 的新逻辑复制,我们可以将我们的数据库表复制到他们控制的服务器上。
这对于完成我们共享数据的使命非常有用。它比提供慢速 API 好 100 倍。
我们为他们创建了一个这样的角色:
CREATE ROLE some_client WITH REPLICATION LOGIN PASSWORD 'long-password';
GRANT SELECT ON TABLE some_table TO some_client;
Run Code Online (Sandbox Code Playgroud)
我们为他们创建了一个 PUBLICATION,如下所示:
CREATE PUBLICATION testpublication FOR TABLE ONLY some_table;
Run Code Online (Sandbox Code Playgroud)
这样做有风险吗?我的分析是,这使他们可以选择访问他们正在复制到他们自己的服务器的表,但仅此而已。还有其他顾虑吗?如果有顾虑,是否有办法使这项工作发挥作用?我们有不想共享的表,但我们的大多数表只有公共数据。
我继承了一个应用程序在sysadmin帐户下运行的系统。我限制该帐户db_datareader+ db_datawriter+EXECUTE上的所有数据库和一套extended events会议赶permission errors在服务器上。即使用户是其中的成员并且对表没有应用细粒度限制
,看到一些inserts失败也让我感到非常惊讶db_datawriter。
然后我注意到只有该集合的插入IDENTITY_INSERT失败。有问题的数据库是满的identity,有太多SET IDENTITY_INSERT在他们的代码。代码不仅意味着modules存储在服务器上,还意味着C#代码。
要能够设置identity_insert用户必须拥有该表或对该表具有ALTER权限。但事实是你不能ALTER只授予表,我被迫授予ALTER整个数据库的权限(user
我会让这个用户的db_ddladmin角色成员只添加42 个权限(!!!) vs 51 个可以通过授予ALTER数据库添加到用户权限)
我对重构数据库不感兴趣sequence(服务器版本是2014这样我理论上可以做到)而且我不能只是添加execute as dbo到每个使用的 sp 中,identity_insert因为还有应用程序代码要重写,我只是想知道为什么微软会做出如此奇怪的事情db_datawriter无法设置的权限设计identity_insert? …
security ×10
sql-server ×7
permissions ×3
postgresql ×2
alerts ×1
certificate ×1
drop-table ×1
error-log ×1
identity ×1
replication ×1
signature ×1