2012-12-02 57 views
0

我想製作一個Web服務以查看底層數據庫的一些細節。用於顯示數據庫模式的ColdFusion Web服務

<cffunction name="getDBSchema" output="false" returnType="query" access="remote"> 


<cfquery name="local.qryPlugin" cachedwithin="#CreateTimeSpan(1,0,0,0)#"> 
    SELECT column_name, data_type, character_maximum_length, kcu.TABLE_SCHEMA, 
    kcu.table_name,ordinal_position, is_nullable 
    FROM information_schema.COLUMNS kcu 
    ORDER BY table_name, ordinal_position 
</cfquery> 

<cfreturn local.qryPlugin> 

我可以關注的是,即使在cachedwithin設置爲一天,我仍然可能被擊中分貝太硬。我也擔心我正在引入一個漏洞。數據庫模式信息本身不是敏感信息

+0

查詢與「打數據庫」的觀點沒什麼大不了。讓你的db設計可供黑客使用是一件大事。你爲什麼要這麼做? –

+0

我想提供一個快速的內部DB架構的最新文檔。雖然沒有顯示,但網絡服務只能通過有限數量的IP訪問 –

回答

2

您問了兩個具體問題 - 其中一個緩存一天就夠了,另外兩個是安全問題。

1)緩存一天好像會是更多就夠了。這是一個非常長的緩存。不知道爲什麼你不認爲這是足夠的,但對我來說似乎很好。

2)我不是安全專家。你提到過,這隻能通過內部IP訪問,所以這可能夠好,但你可能想問自己爲什麼你總是分享這些細節?你的用戶是否真的需要這些信息?

最後 - 不要忘了ColdFusion有一個<cfdbinfo>標籤可以做到這一點。你的代碼很明顯,但我只是分享,如果你不知道。

+0

我喜歡那拉我需要的所有數據,並將在日間數據庫工作 –