Azure Sql實戰過程3 - 防火牆配置和連接調試




  這時數據庫實例已經完全啟動,當然現在還不能連接,需要完成防火牆設置、遠程客戶端調試。

  

1、防火牆配置

  點擊左側的收藏夾中的“SQL數據庫”,可以在SQL面板中看到已經配置的SQL實例,如下:

   

  

   點擊實例,進入實例的詳細頁面。

  

  

  在工具欄上選擇“設置服務器防火牆” 。 此時會打開數據庫服務器的“防火牆設置”頁 。在概述和配置中都可以進入該功能。

  

  

  點擊“添加客戶端IP” ,此時在下方規則面板中會自動導入客戶端ip,建議:如果點擊了一次發現客戶端ip的輸入框后面沒有自動打鈎,建議再次點擊“添加客戶端IP”,一般這種情況會很少發生。

  

  

  記得點擊“保存”,保存剛才的ip配置

  

  

2、數據庫web端調試連接

  返回總的數據庫實例詳情頁面,點擊“查詢編輯器(預覽)”,菜單,如下:

        

  

  在“SQL Server 身份驗證”中輸入數據庫登錄的用戶名和密碼,再點擊“確定”,嘗試登錄數據庫。

  

  

  錯誤信息如下:

Cannot open server 'databaseserver' requested by the login. 
Client with IP address '223.104.90.105' is not allowed to access the server.
To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.
It may take up to five minutes for this change to take effect.

  

  這時,需要將web端ip設置進防火牆,步驟如圖,點擊“設置服務器防火牆 (databaseserver)” ,安裝1的步驟手動設置防火牆。

 

  

  

  返回web登錄界面,重新嘗試登錄。這時已經可以看到連接進入數據庫的樣子

  

  

3、數據庫遠程客戶端調試連接

  在數據庫概述面板中,復制服務器名稱,方便遠程客戶端的連接。

  

  

  打開Windows本地的“Microsoft SQL Server Management Studio 18”工具,服務器類型設置為“數據庫引擎”,身份驗證選擇“SQL Server 身份驗證”。如圖:

  

  點擊連接,就可以進入連接界面。

  

  

4、數據庫程序端配置方案

  進入“連接字符串界面”,可以看到該數據庫所支持連接方案,如圖:

 

  所支持的方式如下:

1)、ADO.NET (SQL 身份驗證)

Server=tcp:databaseserver.database.chinacloudapi.cn,1433;Initial Catalog=mySampleDatabase;Persist Security Info=False;User ID=adminer;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

 

2)、JDBC (SQL 身份驗證)

jdbc:sqlserver://databaseserver.database.chinacloudapi.cn:1433;database=mySampleDatabase;user=adminer@databaseserver;password={your_password_here};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.chinacloudapi.cn;loginTimeout=30;

 

3)、ODBC (包括 Node.js) (SQL 身份驗證)

Driver={ODBC Driver 13 for SQL Server};Server=tcp:databaseserver.database.chinacloudapi.cn,1433;Database=mySampleDatabase;Uid=adminer;Pwd={your_password_here};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;

 

4)、PHP (SQL 身份驗證)

<?php
// PHP Data Objects(PDO) Sample Code:
try {
    $conn = new PDO("sqlsrv:server = tcp:databaseserver.database.chinacloudapi.cn,1433; Database = mySampleDatabase", "adminer", "{your_password_here}");
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
    print("Error connecting to SQL Server.");
    die(print_r($e));
}

// SQL Server Extension Sample Code:
$connectionInfo = array("UID" => "adminer", "pwd" => "{your_password_here}", "Database" => "mySampleDatabase", "LoginTimeout" => 30, "Encrypt" => 1, "TrustServerCertificate" => 0);
$serverName = "tcp:databaseserver.database.chinacloudapi.cn,1433";
$conn = sqlsrv_connect($serverName, $connectionInfo);
?>

 

5)、Go (SQL 身份驗證)

// Go connection Sample Code:
package main
import (
    github.com/denisenkom/go-mssqldb
    database/sql
    context
    log
    fmt
    errors
)

var db *sql.DB
var server = "databaseserver.database.windows.net"
var port = 1433
var user = "adminer"
var password = "<your_password>"
var database = "mySampleDatabase"

func main() {
    // Build connection string
    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
        server, user, password, port, database)
    var err error
    // Create connection pool
    db, err = sql.Open("sqlserver", connString)
    if err != nil {
        log.Fatal("Error creating connection pool: ", err.Error())
    }
    ctx := context.Background()
    err = db.PingContext(ctx)
    if err != nil {
        log.Fatal(err.Error())
    }
    fmt.Printf("Connected!")
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM