网站空间_域名免备案_优惠

资讯 虚拟云 浏览

小编:默认情况下,当您运行数据库服务器时,您可以访问服务器的所有功能,无论您是否实际使用这些功能。第三方(恶意或非恶意)也可以利用其中的一些功能来执行您不打算作为应用

默认情况下,云服务器使用,当您运行数据库服务器时,您可以访问服务器的所有功能,无论您是否实际使用这些功能。第三方(恶意或非恶意)也可以利用其中的一些功能来执行您不打算作为应用程序部署一部分的操作。例如,第三方可能会利用数据库服务器访问文件系统、发送电子邮件或调用web服务的功能损害机器的安全性。

如果您在应用程序中使用这些功能,您很可能意识到误用的可能性,并可以采取适当的措施来缓解这些问题,但是如果您没有使用这些功能,分布式数据库,您甚至可能在出现问题之前都不知道这些功能。

在版本10中,为了防止第三方取代已部署的SQL Anywhere服务器并错误地使用它,SQL Anywhere为开发人员添加了更好地控制服务器在默认情况下可用的功能的能力部署他们的应用程序。这称为"安全功能"功能。它允许您启用/禁用数据库服务器的特定功能。例如,如果您从未使用xp\u start/stop/sendmail过程,您可以在运行服务器时禁用该功能。

安全功能通过命令行开关(-sf)启用。您还可以提供密钥(-sk),用于在运行时启用/禁用特定功能。有许多功能可以控制,这里讨论的是:

安全特性

为了演示安全特性的工作原理,我们将研究添加到SQL Anywhere 17中的一个新的安全特性,它允许您启用数据库隔离。如果启用,则在数据库服务器上运行的每个数据库都将充当该数据库服务器上运行的唯一数据库。一个数据库的连接不允许查询同一服务器上运行的任何其他数据库的属性或连接信息,也不允许启动或停止其他数据库。

添加了一个新的服务器命令行选项-edi(启用数据库隔离)以打开数据库隔离。还有一个新的安全特性databaseu隔离,它允许应用程序关闭给定连接的数据库隔离。这个新的安全功能在默认情况下是打开的,只能对特定的数据库关闭,不能全局关闭。

在这个例子中,我创建了两个数据库,演示.db以及demoprime.db数据库,如果我们启动一个运行以下两个数据库的服务器:

,然后从dbisql连接到它,运行语句"SELECT*fromsa\u db\u info()"表明我们可以"看到"服务器上运行的两个数据库:

用户可以利用服务器上运行的数据库的知识来查找有关其他正在运行的数据库的信息(例如数据库和连接属性以及有关数据库文件的信息)为了防止这种情况发生,我们可以在启用数据库隔离的情况下运行服务器:

从dbisql连接到演示数据库,并发出相同的"SELECT*fromsa\u db\u info()"语句,只告诉我们所连接的数据库。

对于其他系统过程,云 数据库,如sa\u conn\u info(),结果将类似,sa\u db\u properties()等…连接的用户无法"查看"服务器上运行的其他数据库的任何信息。

但是如果您希望允许管理员用户访问此信息,该怎么办?按照服务器当前的运行方式,如果不使用其他选项重新启动服务器,则无法禁用数据库隔离。要允许为连接禁用数据库隔离功能,您必须使用sf/sk选项来设置密钥。该密钥可用于修改正在运行的服务器中的安全功能。

在我们的服务器正在运行且启用了数据库隔离的情况下,我们无法访问服务器上运行的任何其他数据库的信息。要禁用连接的数据库隔离,我们可以执行以下过程调用允许我们管理用于安全功能访问的密钥。

然后我们创建一个密钥与数据库隔离功能相关联:

现在,听云服务器,我们可以将密钥分发给管理用户,他们可以使用它来为他们的连接禁用数据库隔离功能:

为了能够为连接重新启用数据库隔离,我们可以创建另一个密钥,并使用它:

注意,在数据库隔离打开的情况下,服务器试用,应用程序仍然可以使用适当的实用程序用户ID和密码和可以执行实用程序操作;但是,在连接到实用程序数据库时启动和停止数据库仍将受到限制,应用程序仍需要使用manage\u database\u isolation secure功能才能启动和停止数据库。

当前网址:http://vmchk.cooou.com/webdesign/100981.html

 
你可能喜欢的: