ODBC模式验证方法权限查詢

ODBC备份模式下有两种验证方法:可信验证和MS SQL验证。 以下过程可以帮助确定:

  1. 用于在ODBC备份模式下对MS SQL 伺服器资料库备份进行验证的登录凭据具有正确的权限。
  2. 为了获得假脱机资料库的大小,以确保临时资料夹所在的驱动程序有足够的空间来容纳备份期间资料库的假脱机。

可信验证

若要验证可信验证的登录凭据是否具有访问和后台处理MS SQL Server资料库以进行备份作业的正确权限,建议使用以下命令:

osql -E -Q "DECLARE @dbname char(64) SET @dbname = 'xxx' BACKUP DATABASE @dbname TO DISK = '%temporary_path%\%database_name.txt' WITH SKIP"

请注意:

示例方案:使用具有足够权限的Windows用户账户的可信验证

  1. 使用特定账户(例如管理员)登录Windows。
  2. 打开命令提示符。
  3. 应用下列osql指令。
  4. Microsoft Windows [Version 10.0.14393]
    (c) 2016 Microsoft Corporation. All rights reserved.
    C:\Users\Administrator>osql -E -Q "DECLARE @dbname char(64) SET @dbname = 'adventureworks2016' BACKUP DATABASE @dbname TO DISK ='E:\temp\adventureworks2016.bak' WITH SKIP"
    Processed 26240 pages for database 'adventureworks2016', file
    'AdventureWorks2016_Data' on file 5.
    Processed 2 pages for database 'adventureworks2016', file
    'AdventureWorks2016_Log' on file 5.
    BACKUP DATABASE successfully processed 26242 pages in 14.397 seconds (14.239 MB/sec).
    C:\Users\Administrator>

    上述示例中

  5. 如果'adventureworks2016’资料库成功保存到临时资料夹(E:\Temp),验证该账户具有正确的权限。 为了检查资料库是否成功建立,並获取假脱机资料库的大小,以确保临时驱动器有足够的空间来容纳备份期间资料库文件的假脱机,运行下列指令。
  6. C:\Users\Administrator>dir E:\Temp
    Volume in drive E has no label.
    Volume Serial Number is 16F4-EB51
    Directory of E:\Temp
    09/07/2020 11:18 AM DIR .
    09/07/2020 11:18 AM DIR ..
    09/07/2020 12:06 PM 1,075,228,160 adventureworks2016.bak
    09/07/2020 11:18 AM 215,046,656 inventory.bak
    09/04/2020 06:42 PM 4,024,832 master.bak
    3 File(s) 1,429,402,815 bytes
    2 Dir(s) 21,348,990,976 bytes free
    C:\Users\Administrator>

示例方案: 使用权限不正确的账户进行的可信验证

当使用不具有访问MS SQL资料库的正确权限的Windows登录账户时,将显示以下错误消息。

C:\Users\backup1>osql -E -Q "DECLARE @dbname char(64) SET @dbname = 'adventureworks2016' BACKUP DATABASE @dbname TO DISK ='E:\temp\adventureworks2016.bak' WITH SKIP"
[ODBC Driver 13 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [2].
Login failed for user 'W2K16-MSSQL2K16\backup1'.
[ODBC Driver 13 for SQL Server]A network-related or instance-specific error
has occurred while establishing a connection to SQL Server. Server is not
found or not accessible. Check if instance name is correct and if SQL Server
is configured to allow remote connections. For more information see SQL Server
Books Online.


C:\Users\backup1>

上述示例中,用户‘backup1’ 没有正确的权限。因此,无法建立MS SQL 伺服器连接。

MS SQL 验证

若要验证MS SQL验证的登录凭据是否具有访问和假脱机MS SQL 伺服器资料库以进行备份作业的正确权限,建议应用下列指令:

osql -U USERNAME -P PASSWORD -Q "DECLARE @dbname char(64) SET @dbname = 'xxx' BACKUP DATABASE @dbname TO DISK = '%temporary_path%\%database_name.txt' WITH SKIP"

请注意:

示例方案: 使用具有足够权限的账户进行MS SQL 验证

  1. 使用特定账户(例如管理员)登录Windows。
  2. 打开命令提示符。
  3. 应用下列osql指令。
  4. Microsoft Windows [Version 10.0.14393]
    (c) 2016 Microsoft Corporation. All rights reserved.
    C:\Users\Administrator>osql -U sa -P abc123$% -Q "DECLARE @dbname char(64) SET @dbname = 'master' BACKUP DATABASE @dbname TO DISK = 'E:\temp\master.bak' WITH SKIP"
    Processed 480 pages for database 'master', file 'master' on
    file 2.
    Processed 3 pages for database 'master', file 'mastlog' on
    file 2.
    BACKUP DATABASE successfully processed 483 pages in 0.785 seconds (4.802 MB/sec).
    C:\Users\Administrator>

    上述示例中,

  5. 如果'adventureworks2016’资料库成功保存到临时资料夹(E:\Temp),验证该账户具有正确的权限。 为了检查资料库是否成功建立,並获取假脱机资料库的大小,以确保临时驱动器有足够的空间来容纳备份期间资料库文件的假脱机,运行下列指令。
  6. C:\Users\Administrator>dir E:\Temp
    Volume in drive E has no label.
    Volume Serial Number is 16F4-EB51
    Directory of E:\Temp
    09/07/2020 11:18 AM DIR .
    09/07/2020 11:18 AM DIR ..
    09/07/2020 12:06 PM 1,075,228,160 adventureworks2016.bak
    09/07/2020 11:18 AM 215,046,656 inventory.bak
    09/04/2020 06:42 PM 4,024,832 master.bak
    3 File(s) 1,429,402,815 bytes
    2 Dir(s) 21,348,990,976 bytes free
    C:\Users\Administrator>

示例方案: 使用权限不正确的账户进行的MS SQL验证。

当使用不具有访问MS SQL资料库的正确权限的Windows登录账户时,将显示以下错误消息。

C:\Users\Administrator>osql -U mssql1 -P abc123$% -Q "DECLARE @dbname char(64) SET @dbname = 'master' BACKUP DATABASE @dbname TO DISK = 'E:\temp\master.bak' WITH SKIP"
[ODBC Driver 13 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [2].
Login failed for user 'mssql1'.
[ODBC Driver 13 for SQL Server]A network-related or instance-specific error
has occurred while establishing a connection to SQL Server. Server is not
found or not accessible. Check if instance name is correct and if SQL Server
is configured to allow remote connections. For more information see SQL Server
Books Online.


C:\Users\Administrator>

上述示例中,用户‘mssql1’没有正确的权限。因此,无法建立MS SQL 伺服器连接。