1. 程式人生 > >關於代碼通過API操作阿裏雲RDS的巨坑

關於代碼通過API操作阿裏雲RDS的巨坑

mysq tools per 創建 實例 normal 帳號 mysql5 默認

由於項目原因,要通過API操作阿裏雲的數據庫,於是簡單研究了一下阿裏雲提供的相關文檔,發現官方提供了.NET的SDK,而且還提供了github開源代碼,這個要為阿裏點贊!

於是到github上弄了一份源碼,發現源碼文件相當多,嘗試了一下只提取幾個需要用到的類文件放到項目中,經過測試好像不行,也可能本人水平未達到,反正就是不行,最終放棄。

然後測試了一下引用項目和引用dll都沒有問題,基本順利。

在測試創建用戶的時候遇到了一個坑,也可以說是巨坑!在創建賬號的API文檔中關於AccountType的說明中只寫了:

// 取值為:Normal(普通賬號),Super(超級賬號),默認為Normal。該參數僅對 MySQL5.5/5.6、SQL Server 2008R2 有效,MySQL5.7/SQL Server 2012/PostgreSQL/PPAS 有且僅有一個初始賬號,其他賬號由初始賬號連接數據庫後創建。

並沒有任何警告信息!而實際上,你只要創建了“Super(超級賬號)”就麻煩了!創建之後,這個實例立即切換到AccountMode(賬號模式?),而且不可恢復,這個帳號還不可刪除!

我是操作了之後才發現的問題,看到了這篇“創建高權限賬號”的文章,也怪我沒有仔細、完整地閱讀文檔吧,但我認為這麽嚴重後果的操作,在API文檔中應該最起碼得有加粗黑體字警告,甚至紅字警告信息!

唉,一不小心入此坑,而且還爬不上來!希望看到此文的朋友能避免入坑。

關於代碼通過API操作阿裏雲RDS的巨坑