到目前为止,我已经花了大约 30 个小时努力sp_send_dbmail去上班。我终于得到了一些工作,但我严重怀疑它的安全性。我想知道一种更好但快速且易于设置的方法(此时我的时间受到严重限制),以及“理想”(最佳实践)解决方案。
当前 SQL Server 2005 配置
- `After Insert` Trigger on table executes `sp_send_dbmail`
- Database Mail SMTP Account setup (with successful mail test)
- Database Mail Profile setup (with "Public Profile" ticked)
- "guest" account added to "DatabaseMailUserRole"
Run Code Online (Sandbox Code Playgroud)
我发现这篇文章提出了“正确”的解决方案,我阅读了这篇文章,在那里我发现这是一个非常复杂的解决方案,似乎有太多可能出错的事情,更不用说难以维护了。
我对替代解决方案的想法是这些。
1. Setup an Application Role in msdb (this would be my first time using one
and not even sure if it IS a solution :P), and use it to ensure that …Run Code Online (Sandbox Code Playgroud) 是否可以在另一个(S)数据库中使用来自一个数据库(F)的登录名/用户?我知道我可以复制它,但是,当我将用户添加到 (F) 数据库时,我必须再次将它们全部复制(或将同一用户添加到 (S) 数据库)-我想避免这种情况...
我只想知道是否可以将安全/用户设置为来自另一个数据库的用户。
我在 Linux 上使用 oracle 12c。使用企业管理器数据库 express 我正在查看 sys 用户的权限和角色列表,但我没有找到在那里分配的 sysdba 权限。
sys 用户是 oracle 角色的成员还是具有 sysdba 权限的 Linux 组?什么角色或组?
我想将我的 Postgres 数据库配置为由任何 IP 10.8.101.* 访问。我知道我必须在其中创建一个规则,pg_hba.conf但我不确定它应该是什么样子。我的 LAN IP 目前是 10.8.101.128 所以我认为这会起作用:
# TYPE DATABASE USER ADDRESS METHOD
host all all 10.8.101.0/128 md5
Run Code Online (Sandbox Code Playgroud)
但我收到了一个错误could not load pg_hba.conf。有谁知道如何正确地做到这一点?
我有一个表,我希望它是只读的,除了一些需要UPDATE表中行权限的特定存储过程。
之后,我只希望一组选定的附加存储过程具有EXECUTE上述UPDATE过程的权限。
我一直在阅读有关GRANT,并DENY在MSDN / TechNet和我也一直念叨模式,但文档是如此模糊和非听上去很像是我无法搞清楚如何实现基于真实世界的安全目标提供的说明。
我可以看到,你可以GRANT或DENY个人的原则,一次一个权限-但我需要否定INSERT UPDATE和DELETE对所有原则的权限,除了到我授予几个存储过程UPDATE的权限(以及sa和/或db_owner我想) . 默认情况下,
我不希望任何新用户拥有UPDATE此表的权限,而且我真的很想避免每次创建/修改用户或其他对象时都必须手动拒绝权限。
这是我的要求,虽然我知道可以做些什么来实现它,但仍在寻找最佳解决方案。
几天前,有人(一些黑客或一些以前的开发人员)截断了我的重要表,给我的客户带来了不便。我需要更改我的数据库密码、服务器密码和其他应用程序的密码,以避免此类令人讨厌的行为并阻止我的应用程序。
此外,首先我需要知道是否在我的客户之前使用我的数据执行此类活动,以便我可以为他们找到任何解决方法。这是我到现在为止的想法——
这些变通方法似乎很好且可行。但我真的很想知道我还能做些什么来阻止我的数据或在数据丢失时提醒我。我相信还有其他有效且更可行的方法来实现我想要的。如果有人可以帮助我,那就太好了。
这是一个 Web 应用程序,只有经过身份验证的用户才能登录。我的 SQL Server 版本是企业版。
我有一个客户希望我实现一个网页,该网页允许用户在文本框中输入自定义查询,以便他们可以直接查询 SQL Server 数据库。我担心用户输入恶意查询*。有没有办法(通过语法检查或角色权限或其他方式)确保数据库在提供此功能时保持安全?
*忽略拒绝服务。我担心的主要是数据丢失
security best-practices permissions sql-server-2008-r2 read-only-database
如何在oracle中区分安全管理员故意锁定的用户和由于登录尝试失败而锁定的用户
我需要创建一个查询,该查询可以获取上个月未使用的登录详细信息。我尝试了几种方法,如扩展事件和审计跟踪。但是我无法获得上个月未使用的登录列表,请帮我解决这个问题。
我们的开发团队创建了一些 SSRS 报告,这些报告仅从每个数据库中检索元数据(非“真实”数据)。我试图将运行这些报告的服务帐户锁定到所需的最低权限。
查询仅从每个数据库中的系统表中进行选择,例如:
sys.tables
sys.extended_properties
SYS.objects
SYS.schemas
sys.dm_db_partition_stats
sys.indexes
Run Code Online (Sandbox Code Playgroud)
我认为以下会做到这一点,但没有这样的运气。
GRANT VIEW ANY DATABASE TO [DOMAIN\LOGIN]
GRANT VIEW SERVER STATE TO [DOMAIN\LOGIN]
GRANT VIEW DATABASE STATE TO [DOMAIN\LOGIN]
Run Code Online (Sandbox Code Playgroud)
查询系统表给出错误:
The server principal "DOMAIN\LOGIN" is not able to access the database "DATABASENAME" under the current security context.
Run Code Online (Sandbox Code Playgroud)
除了为每个数据库的登录创建一个用户然后显式授予系统表的权限之外,我似乎找不到其他方法来解决这个问题。这对所有未来的数据库提出了一系列新的挑战。我是否遗漏了什么,或者没有简单的方法可以在不授予“系统管理员”服务器级角色的情况下向所有数据库授予此访问权限?
security ×10
sql-server ×5
permissions ×3
logins ×2
oracle ×2
audit ×1
linux ×1
network ×1
postgresql ×1
trigger ×1