我有一个通过创建以下内容来保护我的数据库管理员帐户的想法:
但是,这仍然只是一个想法,我不知道这是否可行,您知道是否有人尝试过吗?
任何链接或参考资料。
我的灵感来自我的朋友,他在登录工作站时挂在脖子上的一个小设备中生成了一个密钥,有谁知道这个安全程序叫什么?
可能出现的限制或问题是什么?(服务器崩溃/重启)
谢谢!
我的机器上托管了一个数据库,我希望同事能够通过我创建的程序访问和编辑该数据库。
我当前的连接字符串是:
Server=MyMachine;Database=MyDatabase;Integrated Security=True;
Run Code Online (Sandbox Code Playgroud)
为了让另一个用户访问它,我必须:
运行脚本:
USE Database
GRANT SELECT, INSERT, UPDATE, DELETE TO [Username]
GO
Run Code Online (Sandbox Code Playgroud)我如何配置它以便我的工作网络上的每个人(或 Windows 用户名以“ MyCompany\”开头的每个人)都可以默认拥有这些权限?这样我就不必手动添加每个新人。
我启用Database Mail XPs并在我的开发机器上测试它。我只是想知道这是否DB Mail是一个糟糕的安全选择,以及通过应用程序服务器(ColdFusion 或 PHP)发送这种消息是否更安全(或标准做法)?我将使用Database Mail数据库备份/恢复消息、错误或错误检查消息(我能想到的)。我知道启用功能总是会增加风险。
使用:
提前致谢。
我注意到我可以在master数据库中创建表、模式、存储过程等。
我不知道是什么授予此权限。这很烦人,因为当我们在 SSMS 中打开一个 *.sql 文件时,它默认与master 相关。如果在CREATE没有注意到并设置正确的数据库上下文的情况下执行操作,则在master 中创建表。
如果我们没有权限,我们会得到一个错误,注意到它并更改数据库上下文。有了权限,表就创建好了,后面我们才看到错误,需要删除重新创建。我注意到在master中已经错误地创建了一些表。
我想撤销每个人类用户的许可,但我害怕破坏某些东西。我不知道某些 SQL Server 例程是否需要在那里创建的权限。
在不破坏 SQL Server 的情况下从master撤销创建权限的最佳方法是什么?
security sql-server permissions sql-server-2012 master-system-database
我想从 SQL Server 数据库中混淆(打乱)敏感数据,但方式将提供:
例子:
Abc -> zyx (lenght: 3)
StackOverflow -> a65vr4doqjd (lenght: 11)
Run Code Online (Sandbox Code Playgroud)
通常我会避免“自制”算法,所以你知道一些可以提供这种混淆的 MS 内置解决方案吗?
我希望我清楚地表达了我的问题,否则让我知道,我会尝试根据需要添加尽可能多的信息。
计划为我们的 Sql-Servers 重新创建新的服务帐户,我想知道 - 从安全角度来看 - 每个服务和每个服务器拥有一个域帐户或仅为每个服务创建一个域帐户并重复使用可能更好那些在不同的服务器上?
DOMAIN\Service-SSRS
DOMAIN\Service-SSAS
DOMAIN\Service-SSIS
vs.
DOMAIN\Service-SQL01-SSRS
DOMAIN\Service-SQL01-SSAS
DOMAIN\Service-SQL01-SSIS
DOMAIN\Service-SQL02-SSRS
DOMAIN\Service-SQL02-SSAS
DOMAIN\Service-SQL02-SSIS
etc.
Run Code Online (Sandbox Code Playgroud)
我们这样做是因为我们希望在所有服务器上都有一个统一和一致的配置,而今天还没有到位。我觉得每个服务器都有一个帐户可能会带来更大的灵活性,因此适得其反......
有什么具体的优点/缺点吗?为每台服务器设置单独的服务帐户是否有很多用途?
security sql-server configuration service-accounts sql-server-2016
我正在考虑将 PostgreSQL 用于一个项目,因为它是免费的,人们说它很好,但我需要在我的数据库中进行一些加密。我做了一些搜索,我在 PostgreSQL 中找到了这些选项:
我不知道什么是“最安全”,你们能帮我解决这个问题吗?在这种情况下,我更喜欢稍微慢一点的安全性,而不是速度和一点安全性。
在这种情况下,我猜加密比“只是”散列密码要好,并且在 db 上确实需要它。我需要对我的用户的登录信息进行强加密。难点不是如何存储,而是如何通过加密来保护它。
我有一个奇怪的加密和解密问题。加密在 SQL 2008 R2 中运行良好,我们使用的是 TRIPLE_DES_3KEY。这在 SQL 2016 中已被弃用,因此我们正在测试 AES_256。我的原始字符串不断被切断,不确定它在做什么或如何解释。我确定我错过了一些东西,但不确定是什么。详情如下。谢谢!
我的对称密钥:
CREATE SYMMETRIC KEY SK03
WITH
ALGORITHM = AES_256
ENCRYPTION BY PASSWORD = 'ThisIsMyAES_256EncryptionTest';
Run Code Online (Sandbox Code Playgroud)
我的表:
CREATE TABLE [dbo].[_EncryptionTest](
[OriginalValue] [varchar](max) NULL,
[Encryptedvalue] [varbinary](8000) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
我的存储过程:
CREATE PROCEDURE [dbo].[_usp_EncryptionTest]
@InputString varchar(MAX),
@InputString2 varchar(MAX)
AS
BEGIN
SET NOCOUNT ON;
OPEN SYMMETRIC KEY SK03 DECRYPTION BY PASSWORD='ThisIsMyAES_256EncryptionTest'
INSERT INTO _EncryptionTest
(OriginalValue, Encryptedvalue)
VALUES (
@InputString
,ENCRYPTBYKEY(Key_GUID('SK03'), CONVERT(VARBINARY,@InputString2))
)
CLOSE SYMMETRIC KEY SK03;
END
Run Code Online (Sandbox Code Playgroud)
我的测试 SQL:
EXEC _usp_EncryptionTest 'Spring …Run Code Online (Sandbox Code Playgroud) 我有一个数据库,它将在不同用户的多种相关类型的应用程序之间共享。我希望能够限制每个数据库用户基本上可以完全控制他们自己的对象,而只能对他们没有创建的数据库的其他对象进行读取访问。
这是可能的,实现这一目标的最佳方法是什么?
是否有一种既定的方法或工具可用于仅通过测试它发送到数据库的查询来对应用程序执行渗透测试?
例如,如果我有一堆 SQL Server 托管各种网站,并且通过一个未参数化的查询,有没有办法检测到这些?
可能不安全的示例查询:
SELECT x,y,z FROM logins WHERE username = 'xx' and password = 'yyy'
Run Code Online (Sandbox Code Playgroud)
...相反,我希望一个安全的应用程序可能正在使用sp_executesql.
security ×10
sql-server ×7
encryption ×3
permissions ×2
data-masking ×1
logins ×1
mysql ×1
postgresql ×1
role ×1
ssms ×1
t-sql ×1
trigger ×1
users ×1