标签: security

在向用户显式授予选择视图后,对(视图)对象的 SELECT 权限被拒绝

我有一个名为“1098Statement”的视图的数据库我们正在测试用户名为“appuser”的应用程序。

我尝试了以下解决方案来在视图上授予选择权并不断出错:

  1. 授予选择视图
  2. 将用户添加到 db_datareader
  3. 将用户添加到已在视图上授予选择权的数据库角色

    消息 229,级别 14,状态 5,第 2 行 对象“1098Statement”、数据库“mydb”、架构“dbo”的 SELECT 权限被拒绝。

他们都没有工作。

是否有任何人可以提供有关解决此问题的任何指示。

我唯一剩下的想法是检查

  1. 用户帐户,以查看对用户或帐户所属的任何角色是否有任何明确的“拒绝”限制。
  2. 检查视图以查看是否有任何明确的拒绝

sql-server-2005 security

7
推荐指数
1
解决办法
1万
查看次数

您如何防止 Oracle 外部表中的恶意 PREPROCESSOR 攻击?

我是一名新的 DBA,最近我发现了 Oracle 中使用 PREPROCESSOR 功能的外部表选项(http://download.oracle.com/otndocs/products/database/enterprise_edition/utilities/pdf/xtables_preproc11g_1009.pdf)不幸的是,此功能在我们的休息室中似乎非常有用,但似乎非常危险,因为可以访问操作系统(或远程......)的人可能会利用它来导致数据库受到损害,甚至最糟糕的是 - 整个操作系统。

我已将此功能的访问权限限制在最低限度,并撤销了可能允许外部访问操作系统(extproc、java 等)的任何其他权限

但是,有时我们必须使用此功能,这就是我问你们两个主要问题的地方:

  1. 你如何使用这个邪恶的功能来防止恶意攻击?
  2. 假设安全机制出现故障,有哪些方法可以检测到有人以邪恶的方式使用了此功能?可以看到什么样的查询(或它们的内容)?

谢谢 (:

oracle security

7
推荐指数
2
解决办法
373
查看次数

安全地公开 sql server 2008 以进行 Windows 身份验证

我的公司希望有大约 100 名销售人员(分布在全国各地)能够从 excel 运行存储过程并将数据返回到电子表格中。

我们有 sql server 2008。我需要找出一种安全的方法来做到这一点。

我将在 excel 中创建一个表单,用户可以在其中按下命令按钮以根据他们选择的参数刷新数据。

  1. 我如何确保从 excel 到 sql server 的连接是安全的?
  2. 如何从excel运行存储过程?

我发现这是非常好的信息:http : //office.microsoft.com/en-us/excel-help/connect-to-import-sql-server-data-HA010217956.aspx

Windows 身份验证 选择此选项以使用当前用户的 Windows 用户名和密码。这是最安全的方法,但当许多用户连接到服务器时,它会影响性能。

但是,我希望您对此提出意见。

是的,销售代表确实有 Windows 登录,但是如果他们实际上要输入指定数据标准,然后将标准发送到存储过程,然后从服务器获取数据,我可以使用这个解决方案吗?

sql-server-2008 authentication security sql-server windows

7
推荐指数
2
解决办法
1763
查看次数

在 Oracle 11g 中授予对特定架构的创建权限

我有两个用户 A 和 B。我想授予 B 创建、删除等 A 架构中所有表的权限。据我所知,我可以授予 B 对所有模式的完全访问权限,而不是特定模式。这样对吗?

oracle security

7
推荐指数
1
解决办法
4万
查看次数

跨数据库链接与可信选项

最近,我们有一个存储过程请求,需要跨多个数据库进行访问。当然,这种情况并不少见,但在我们的案例中,之前我们使用了服务帐户,并且该服务帐户具有对所有数据库的读/写权限。

但是现在我们将所有权限更改为windows登录AD组,AD组中的用户没有对所有数据库的所有权限。

例子:

  • AD 组 UG1 有 10 个用户,它们是数据库 A 上的用户。
  • 存储过程 PROCA 驻留在数据库 A 中,但对属于数据库 B 和数据库 C 的表进行了选择。
  • 执行权限已授予存储过程 PROCA 和 AD 组 UG1,因为已在数据库 B 和数据库 C 上创建用户(没有其他权限)。
  • DatabaseA、DatabaseB 和DatabaseC 的数据库所有者在登录XXX 下。

众所周知,这种跨数据库的权限可以通过

  • 选项 1:在所有数据库上打开数据库跨链,或
  • 选项 2:为 AD 组 UG1 提供所需的数据库(B 和 C)的单个对象权限或
  • 选项 3:在 DatabaseA 上使用 Trustworthy db 选项并更改存储过程 PROCA 以包括作为“dbo”用户执行,以便权限可以模拟。
  • 选项 4:使用证书

我的问题是,关于安全性和保持简单和安全的最佳解决方案是什么?

请注意,没有任何开发人员是任何数据库的数据库所有者,并且提升的权限仅分配给 DBA,因此有人进行黑客攻击或 SQL 注入或冒充系统管理员的可能性是“无”的。

但同样,我想知道在这种情况下你会怎么做?我更喜欢选项3。

sql-server-2008 security sql-server

7
推荐指数
1
解决办法
3557
查看次数

在我的数据库服务器上运行防病毒软件是否安全?

Microsoft 已知某些防病毒软件的实现会导致SQL Server 出现各种问题,并且 Microsoft 有一篇支持文章专门用于为您的 SQL Server 主机选择正确的防病毒软件

根据您的经验,在您的数据库服务器上运行防病毒软件是否安全?

考虑到所有必需的防病毒排除和注意事项,它是否实用?

security sql-server best-practices

7
推荐指数
1
解决办法
4380
查看次数

在创建视图时使用 SQL 安全定义器还是调用器?

CREATE VIEW 语法是

CREATE
    [OR REPLACE]
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
Run Code Online (Sandbox Code Playgroud)

因为SECURITY您可以设置DEFINERINVOKER。什么时候选择“定义器”才有意义?据我了解,这意味着检查我的安全权限,即创建视图的人。如果我对我们的数据库拥有完全权限,那么我只是创建了一个视图,为任何调用者提供完全访问权限。这听起来不对。难道您不总是希望安全性是实际使用视图的人吗?

mysql security view

7
推荐指数
1
解决办法
1万
查看次数

如何检查Oracle数据库连接加密类型

如何检查 Oracle 数据库连接加密类型?(Oracle 数据库和其他客户端应用程序之间)我如何确保 Oracle 数据库和 Toad 之间的数据库连接是加密的?(我的 Toad 版本是 9.5,Oracle 数据库版本是 11g)

oracle security encryption toad

7
推荐指数
2
解决办法
3万
查看次数

将 sysadmin 角色与 EXECUTE AS 结合使用

我的理解是,我可以将该EXECUTE AS OWNER子句用作我创建的过程的一部分,以使该过程的主体以不同的用户身份运行。我的目标是执行需要sysadmin角色 ( DBCC TRACEON(1224))的命令。此过程应该由非特权用户调用。

我在sa用户下运行了以下脚本:

SELECT USER_NAME(), USER_ID(), IsSysAdmin = IS_SRVROLEMEMBER('sysadmin')
-- dbo  1   1

IF EXISTS(SELECT * FROM sys.procedures WHERE name = 'MyProc')
    DROP PROCEDURE MyProc

GO
CREATE PROCEDURE MyProc
WITH EXECUTE AS OWNER
AS 
    SELECT USER_NAME(), USER_ID(), IsSysAdmin = IS_SRVROLEMEMBER('sysadmin');
-- dbo  1   0

    DBCC TRACEON(1224)
--Msg 2571, Level 14, State 3, Procedure MyProc, Line 7
--User 'dbo' does not have permission to run DBCC TRACEON.

RETURN
GO

EXEC …
Run Code Online (Sandbox Code Playgroud)

security sql-server dbcc role

7
推荐指数
2
解决办法
1万
查看次数

SQL Server 2012 - SA 帐户探测

在我的一台服务器(Win 2012 R2)上,SQL Server 2012 不断受到攻击,SA 帐户每秒被攻击 10 次,使用不同的密码。我没有 SA 帐户,但我仍然想停止这种探测,因为它可能会消耗资源。我一直在手动检查日志并在防火墙级别阻止有问题的 IP,但我仍然想要一个更好的解决方案。SQL Server 使用 IIS 在本地运行以为其网站提供服务,我只需要远程连接到 SQL Server 以使用 SSMS 进行数据库开发,所以起初我想设置一个 VPN,但不确定这是否会与 SSMS 和其他服务一起使用像 FTP。作为临时解决方案,我可以通过禁用端口 1433 来阻止 SQL Server 在防火墙处对外界可见,或其他地方?然后我可以在开发时启用/禁用它,也许只是为了我的 IP。谢谢。

security sql-server-2012 windows-server

7
推荐指数
2
解决办法
345
查看次数