您可以通过在连接到数据库时将 utility_db 指定为数据库名,在数据库服务器上启动实用程序数据库。可使用 -su 服务器选项为 DBA 用户设置实用程序数据库口令,或禁用与实用程序数据库的连接。如果在启动实用程序数据库时并未指定 -su 选项,则个人服务器和网络服务器对于用户 ID 和口令的要求将会有所不同。
就个人数据库服务器而言,如果未指定 -su,则连接到实用程序数据库将不会有任何安全限制。对于个人服务器,必须指定用户 ID DBA。您还必须指定一个口令,但它可以是任何口令。假定能够连接到个人数据库服务器的任何人都可以直接访问文件系统,因此不根据口令筛选用户。
在使用 -su 选项时为避免以纯文本形式键入实用程序数据库口令,可创建一个包含该口令的文件,然后使用 dbfhide 实用程序将其进行模糊处理。例如,假设名为 util_db_pwd.cfg 的文件包含该实用程序数据库口令。可使用 dbfhide 对此文件进行模糊处理,然后将其重命名为 util_db_pwd_hide.cfg:
dbfhide util_db_pwd.cfg util_db_pwd_hide.cfg |
然后可使用 util_db_pwd_hide.cfg 文件指定实用程序数据库口令:
dbsrv11 -su @util_db_pwd_hide.cfg -n my_server c:\mydb.db |
对于网络服务器,如果未指定 -su,则必须指定用户 ID DBA,还必须指定存储在 util_db.ini 文件(与数据库服务器可执行文件存储在同一个目录中)中的口令。由于该目录位于服务器上,因此您可以控制对该文件的访问,从而控制谁能够访问该口令。此口令区分大小写。
不建议使用 util_db.ini 文件。应使用 -su 服务器选项为实用程序数据库的 DBA 用户指定口令。请参见-su 服务器选项。
用以下命令启动数据库服务器:
dbeng11 -n TestEng |
为了更加安全起见,可使用 -su 选项指定实用程序数据库口令。
启动 Interactive SQL。
在 [连接] 窗口中,在 [用户 ID] 中键入 DBA,然后键入任意非空口令。口令本身不被检查,但是此字段不得为空。
在 [数据库] 选项卡上,输入 utility_db 作为 [数据库名],输入 TestEng 作为 [服务器名]。
单击 [确定] 进行连接。
Interactive SQL 将连接到个人服务器上名为 TestEng 的实用程序数据库。
使用以下命令启动数据库服务器:
dbsrv11 -n TestEng -su 9Bx231K |
启动 Interactive SQL。
在 [连接] 窗口中,键入 DBA 用作 [用户 ID],然后键入通过 -su 选项指定的口令。
在 [数据库] 选项卡上,输入 utility_db 作为 [数据库名],输入 TestEng 作为 [服务器名]。
单击 [确定] 进行连接。
Interactive SQL 将连接到网络服务器上名为 TestEng 的实用程序数据库。
请参见SQL Anywhere 数据库连接和-su 服务器选项。
当连接到实用程序数据库时,如果执行 REVOKE CONNECT FROM DBA,则会禁用将来与实用程序数据库的连接。这意味着,除非您使用在执行 REVOKE CONNECT 之前便已存在的连接或重新启动数据库服务器,否则以后将无法连接到实用程序数据库。请参见REVOKE 语句。
不建议使用 util_db.ini 文件。建议您使用 -su 服务器选项为实用程序数据库指定 DBA 用户的口令。
util_db.ini 的使用依赖于托管数据库服务器的计算机的物理安全性,因为 util_db.ini 文件可通过文本编辑器方便地读取。
就网络服务器而言,缺省情况下,如果不指定 -su 或不使用 util_db.ini,便无法连接到实用程序数据库。如果您使用 util_db.ini,则该文件将存储口令,与数据库服务器可执行文件位于同一目录,并包含以下文本:
[UTILITY_DB] PWD=password |
要保护 util_db.ini 文件的内容不会受到偶然的直接访问,可使用文件隐藏实用程序 (dbfhide) 对文件进行简单加密。也可使用操作系统功能来限制对服务器文件系统的访问。
有关模糊处理 .ini 文件的详细信息,请参见隐藏 .ini 文件的内容。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |