根据这个 答案,不可能使用 pgcrypto 进行完全安全的数据库加密。
现在,两年后(在 postgresql 9.3 中)是否有任何新的扩展或新方法来进行安全的数据库加密,或者在应用程序服务器上执行此操作仍然是确保具有数据库访问权限的人无法解密数据的唯一方法?
我们已发现一些不恰当地使用代理帐户的服务器。其中一些服务器具有多个凭证和大量作业。不需要在每个步骤上手动检查作业属性 GUI 的“运行方式”。
如何快速识别哪些作业(如果有)包含使用我们认为不适当的代理凭证的步骤?
我想查看与代理相关的帐户。以及使用代理的作业名称和步骤。
SQL 2008+
我有一个 Active Directory 用户 LDomain\LUser,我希望该用户能够连接到 Azure-Sql-DB。MS 使用的语法会引发错误。
T-SQL:
CREATE USER [LDomain\LUser] FROM EXTERNAL PROVIDER
Run Code Online (Sandbox Code Playgroud)
错误:
找不到主体“LDomain\LUser”或不支持此主体类型。
我只是在寻找添加 AD 用户的脚本 - 没有界面。我知道 AD 用户存在于 Azure 中并已确认,但 Azure-Sql-DB 无法识别它,或者此 T-SQL 无效 - 尽管这是来自他们的文档。
security azure-sql-database active-directory azure azure-sql-data-warehouse
我需要在 SQL Server 上启用Ole 自动化过程服务器配置选项,但想知道这样做会带来哪些具体类型的安全风险?
启用此选项后如何利用安全性的示例是什么?
我在数据库testdb中有一个模式Snow。我正在努力为我的用户实现列级安全性。我的用户是老板、经理和实习生。我以超级用户me的身份设置了该表的所有内容。他们都在集团公司。
我的表是这样的:snow.company_table
property_id | property_address | city | zip_code | state
-------------+--------------------------+--------------+----------+-------
1 | 2564 Wescam Court | Reno | 89511 | NV
2 | 1732 Rubaiyat Road | Grand Rapids | 49603 | MI
3 | 4094 Francis Mine | Standish | 96128 | CA
4 | 3193 Ashton Lane | Briggs | 78608 | TX
5 | 1519 North Street | Alamosa | 81102 …Run Code Online (Sandbox Code Playgroud) 我们的开发人员拥有一个由其应用程序使用的域帐户,该帐户需要能够执行在主数据库中使用服务器上其他数据库(SQL Server 2012 企业版)的“sp_”命名约定创建的存储过程。
我知道这不是推荐的做法,但这样做的决定是由比我更有权力的其他人做出的。
我自己从服务器上的任何数据库执行此类存储过程都没有问题,但我也拥有系统管理员权限,并且希望授予此用户尽可能少的权限。
这是我尝试过的:
--create procedure for purpose of testing
USE [master]
GO
CREATE PROCEDURE dbo.sp_HelloWorld
AS
PRINT 'Hello World!'
GO
--create login for test user
USE [master]
GO
CREATE LOGIN [DOMAIN\user] FROM WINDOWS
GO
--create user in master database
USE [master]
GO
CREATE USER [DOMAIN\user] FOR LOGIN [DOMAIN\user]
GO
--create user in another database on server
USE MyDB
GO
CREATE USER [DOMAIN\user] FOR LOGIN [DOMAIN\user]
GO
--grant execute permission on stored procedure in master database
USE …Run Code Online (Sandbox Code Playgroud) 我是一名 DB 和 SQL 初学者。我正在构建一个包含一些 SQL 查询的基本 PHP 应用程序。在我所有的搜索和学习中,每个示例都通过首先登录来访问数据库。这是有道理的,但在 PHP 中,您必须将这些凭据直接放在 PHP 文件中,如下所示:
$mysqli = new mysqli("localhost","user","password","db");
Run Code Online (Sandbox Code Playgroud)
这看起来有风险。例如,我知道一些服务器故障会显示 php 文件的文本而不是执行。
这是为了让初学者容易上手而展示的东西吗?如果是的话,更好的方法是什么?或者说这就是标准并且真的没什么可担心的?为什么它不是安全漏洞?
我已使用以下命令在数据库上启用了更改数据捕获 (CDC)exec sys.sp_cdc_enable_db
这将创建一个由cdc用户拥有的新cdc架构
select
s.*
, dp.name
from sys.schemas as s
join sys.database_principals as dp
on dp.principal_id = s.principal_id
Run Code Online (Sandbox Code Playgroud)
因为我想利用所有权链接并使用 proc 从此架构中读取数据,所以我可以将所有者更改为dbo吗?
ALTER AUTHORIZATION ON SCHEMA::cdc TO dbo
Run Code Online (Sandbox Code Playgroud)
此命令起作用并更改所有者。但疾病预防控制中心已经启用了一段时间,我担心未来会进一步破坏一些东西。
security change-data-capture owner sql-server-2019 schema-migration
如果我想将架构所有权转移到另一个架构,我知道我需要使用以下内容:
ALTER SCHEMA destinationschema TRANSFER sourceschema.objectname;
Run Code Online (Sandbox Code Playgroud)
但它与以下有何不同:
ALTER AUTHORIZATION ON OBJECT::sourceschema.objectname TO destinationschema ;
Run Code Online (Sandbox Code Playgroud)
提前致谢!
这是我在这里的第一篇文章,我绝对没有资格成为 Windows Server 或 Storage Server 2008 或 SQL Server 2008 管理员。我主要是一个 Unix 人,但我的任务是调查我们的公司(一家小型软件初创公司)、IT 基础设施,包括 Windows Server 2008、Windows Storage Server 和 SQL Server,专门供财务、人力资源、销售、法律部门使用和行政部门。开发人员都在 Unix 上。
我需要了解的是,如何保护基于 Windows 的基础架构免受内部攻击。更准确地说,是针对流氓系统管理员。我们当前的系统管理角色由临时工扮演。理论上,可以访问所有(或大部分)密码/登录凭据,他可以为所欲为。
那么是否有一些技术(sa 审计日志、防篡改备份等)可以设置(例如 onetime),其凭据仅可用于非常信任的人(可能是 CEO 本人),并且所有其他系统管理任务都可以由这个临时章节执行。
在最坏的情况下,如果管理员删除、故意损坏/修改某些文件,或更改数据库内容,则此类行为可能是:
我知道这可能不是一个纯粹的 DBA 问题,请原谅我故意发布这个问题,但我没有找到更合适的 SE 论坛,但在这里找到了很多有趣的 Windows Server 基础架构讨论。
security ×10
sql-server ×4
postgresql ×2
audit ×1
azure ×1
encryption ×1
mysql ×1
owner ×1
permissions ×1
php ×1
proxy ×1
schema ×1