2012-11-26 123 views
0

我們能夠使用以下請求URL列出與特定訂閱對應的所有數據庫服務器。列出SQL Azure數據庫

https://management.database.windows.net:8443/SunscriptionID/servers

X-MS-版本= 1.0。

想知道,是否有任何可用於獲取每個特定服務器內數據庫列表的寧靜服務。

+0

據我所知,目前沒有可以做到這一點的REST服務。在任何API文檔中都沒有提及。 – f0x

+0

因此,沒有寧靜的服務列舉數據庫在蔚藍.. ..? :( –

+0

看起來很奇怪,就像在API中間的一個洞一樣,根據我所知,並不存在。在這裏列出一個建議:http://www.mygreatwindowsazureidea.com/forums/34192-windows- azure-feature-voting/suggestions/3389016-rest-service-for-the-enumeration-of-sql-azure-data – f0x

回答

1

您可以連接到每個SQL Azure的服務器的主數據庫和查詢sys.databases中

SELECT * FROM sys.databases 
0

可以使用SOAP管理服務這一點。首先,您需要獲得一個認證令牌(使用基本身份驗證的用戶名的服務器/密碼):

GET https://MYSERVERNAME.database.windows.net/v1/ManagementService.svc/GetAccessToken HTTP/1.1 
sqlauthorization: Basic smafizjfpafijpoazjeoijfamz= 
Host: MYSERVERNAME.database.windows.net 

的迴應將驗證令牌連同餅乾:

Set-Cookie: .SQLSERVERMANAGEMENT=fmazoijfazmojf==; 

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">ffmjjzoipfjpozajfpzofjjmoezafjimozafjoamfjiazfamzofijzmfoijzafjoizafazamijfiiozfmozafjozamfjzmofjizmfozjfohfomzaifjzaomfjizamofzijamofjafmozafjmzafojzmijfzoifzajoimfzaijomfmoizaj==</string> 

然後你可以使用cookie和身份驗證令牌來獲取數據庫列表特定服務器:

GET https://MYSERVERNAME.database.windows.net/v1/ManagementService.svc/Server2('MYSERVERNAME')/Databases HTTP/1.1 
AccessToken: ffmjjzoipfjpozajfpzofjjmoezafjimozafjoamfjiazfamzofijzmfoijzafjoizafazamijfiiozfmozafjozamfjzmofjizmfozjfohfomzaifjzaomfjizamofzijamofjafmozafjmzafojzmijfzoifzajoimfzaijomfmoizaj== 
x-ms-client-session-id: e5a2b587-930f-4cb1-82bc-2be5385f6ad1-2012-11-26 20:12:14Z 
x-ms-client-request-id: 1ac2599c-c4dc-4a66-822b-15f81ba8216b-2012-11-26 20:12:14Z 
Accept: application/atom+xml,application/xml 
Accept-Charset: UTF-8 
Host: MYSERVERNAME.database.windows.net 
Cookie: .SQLSERVERMANAGEMENT=fmazoijfazmojf== 

和響應將是數據庫的列表:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<feed xml:base="https://MYSERVERNAME.database.windows.net/v1/ManagementService.svc/Server2('MYSERVERNAME')/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> 
    <title type="text">Databases</title> 
    <id>https://MYSERVERNAME.database.windows.net/v1/ManagementService.svc/Server2('MYSERVERNAME')/Databases</id> 
    <updated>2012-11-26T20:19:32Z</updated> 
    <link rel="self" title="Databases" href="Databases" /> 
    <entry> 
    <id>https://MYSERVERNAME.database.windows.net/v1/ManagementService.svc/Server2('MYSERVERNAME')/Databases(1)</id> 
    <title type="text"></title> 
    <updated>2012-11-26T20:19:32Z</updated> 
    <author> 
     <name /> 
    </author> 
    <link rel="edit" title="Database" href="Databases(1)" /> 
    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Server" type="application/atom+xml;type=entry" title="Server" href="Databases(1)/Server" /> 
    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DatabaseMetrics" type="application/atom+xml;type=entry" title="DatabaseMetrics" href="Databases(1)/DatabaseMetrics" /> 
    <category term="Microsoft.SqlServer.Management.Server.Domain.Database" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> 
    <content type="application/xml"> 
     <m:properties> 
     <d:Id m:type="Edm.Int32">1</d:Id> 
     <d:Name>master</d:Name> 
     <d:Edition>Web</d:Edition> 
     <d:MaxSizeGB m:type="Edm.Int32">5</d:MaxSizeGB> 
     <d:CollationName>SQL_Latin1_General_CP1_CI_AS</d:CollationName> 
     <d:CreationDate m:type="Edm.DateTime">2012-11-26T14:36:41.387</d:CreationDate> 
     <d:IsSystemObject m:type="Edm.Boolean">true</d:IsSystemObject> 
     <d:Status m:type="Edm.Int32">1</d:Status> 
     <d:IsFederationRoot m:type="Edm.Boolean">false</d:IsFederationRoot> 
     <d:SizeMB m:type="Edm.Decimal">-1.00</d:SizeMB> 
     <d:IsRecursiveTriggersOn m:type="Edm.Boolean">false</d:IsRecursiveTriggersOn> 
     <d:IsReadOnly m:type="Edm.Boolean">false</d:IsReadOnly> 
     </m:properties> 
    </content> 
    </entry> 
</feed> 
+0

爲什麼沒有REST服務的原因是什麼?兩種選擇似乎都會去下一個城市購買麪包和牛奶 – f0x

+0

不知道,也許是因爲您可以通過簡單的查詢獲取此信息(請參閱@Igorek的答案)但是,在很多情況下,REST服務將更加清潔(主要是在工作時機智h非.NET技術,你需要搞砸SQL驅動程序等)。 –