• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      數(shù)據(jù)庫安全機制的探討與實現(xiàn)

      2014-05-08 09:57:08陳功平
      河北省科學院學報 2014年3期
      關鍵詞:觸發(fā)器語句密鑰

      王 紅,陳功平

      (六安職業(yè)技術學院 信息工程系,安徽 六安237158)

      網(wǎng)絡應用技術的發(fā)展,讓人們可以隨時隨地與好友交流、上網(wǎng)購物、管理網(wǎng)上銀行等業(yè)務,你登錄各種賬戶所用到的用戶名、密碼以及你所管理的各項業(yè)務的數(shù)據(jù)都存儲在網(wǎng)絡中的某個節(jié)點計算機上。

      計算機時代,使用數(shù)據(jù)庫技術來存儲和管理龐大的數(shù)據(jù),如何保證數(shù)據(jù)庫中的數(shù)據(jù)安全有效的運行,能夠自我保護[1],同時免疫外界的覬覦,這些都屬于數(shù)據(jù)庫安全要解決的問題。

      數(shù)據(jù)庫管理系統(tǒng)開發(fā)者在設計時都會考慮到數(shù)據(jù)庫安全保護機制方面的需求,設計許多的安全管理接口,同時用戶也可以根據(jù)需求自己配置數(shù)據(jù)庫安全措施。本文以微軟的SQL Server數(shù)據(jù)庫管理系統(tǒng)為例,介紹其在數(shù)據(jù)庫安全機制方面的接口以及實現(xiàn)方法。

      1 數(shù)據(jù)庫安全措施

      微軟產品的市場占有率非常高,SQL Server作為微軟最核心、復雜的商業(yè)數(shù)據(jù)庫管理系統(tǒng)軟件,得到了許多用戶的支持,版本更新很快,管理能力強,在安全配置方面有著獨特的機制和實現(xiàn)方法。

      1.1 數(shù)據(jù)庫文件安全機制

      微軟的數(shù)據(jù)庫產品很多,Visual FoxPro和ACCESS數(shù)據(jù)庫的數(shù)據(jù)以文件形式直接存儲在計算機中,Visual FoxPro數(shù)據(jù)庫文件擴展名為“.dbf”,ACCESS數(shù)據(jù)庫文件的擴展名為“.mdb”,只要用對應的軟件就可以將文件打開,即使文件設置了密碼,也很容易破解,文件打開后,所有的數(shù)據(jù)都可以展示在用戶面前,數(shù)據(jù)的隱私性無從談起,因此它們在商業(yè)運用中較少。SQL Server數(shù)據(jù)庫在操作系統(tǒng)中也是以文件形式存儲,文件分為數(shù)據(jù)文件和日志文件兩種類型。

      (1)數(shù)據(jù)文件

      SQL Server中的數(shù)據(jù)文件又分為“主數(shù)據(jù)文件”和“次數(shù)據(jù)文件”兩類,數(shù)據(jù)庫必須有且只能有一個主數(shù)據(jù)文件,次數(shù)據(jù)文件可以沒有,也可以有多個,它們共同存儲所有數(shù)據(jù)庫對象,但用戶無法得知每個數(shù)據(jù)庫對象存儲在哪個文件中,這有利于保護數(shù)據(jù)。

      主數(shù)據(jù)文件的推薦擴展名為“.mdf”,次數(shù)據(jù)文件的推薦擴展名為“.ndf”,若用戶在創(chuàng)建數(shù)據(jù)庫或為數(shù)據(jù)庫添加文件時,沒有使用推薦擴展名,使用其他字符作擴展名或未使用擴展名,都不影響數(shù)據(jù)庫的運行。

      (2)日志文件

      日志文件存儲用戶對數(shù)據(jù)庫的所有操作,推薦擴展名為“.ldf”,數(shù)據(jù)庫至少要有一個日志文件。

      當數(shù)據(jù)庫在SQL Serve系統(tǒng)中存在時,即使關閉SQL Server軟件,但SQL Server服務是啟動狀態(tài)時,該數(shù)據(jù)庫所屬的各個數(shù)據(jù)庫文件都不能被拷貝、刪除,除非你將數(shù)據(jù)庫從管理系統(tǒng)中分離或停止、暫停SQL Server服務,才能夠實現(xiàn)數(shù)據(jù)庫文件的拷貝、刪除等操作。這是數(shù)據(jù)庫文件的自我安全保護機制之一,防止用戶無意中刪除文件而使得數(shù)據(jù)庫不可用,同時也防止不法人員拷貝文件而獲取信息。

      當用戶獲取到數(shù)據(jù)庫文件后,即使系統(tǒng)安裝了相應的數(shù)據(jù)庫軟件,也無法直接雙擊打開數(shù)據(jù)庫文件,只有將數(shù)據(jù)庫文件在數(shù)據(jù)庫系統(tǒng)中附加或還原后方可查看數(shù)據(jù)庫中的數(shù)據(jù),若你得到的數(shù)據(jù)文件有缺失,附加和還原操作也將不能進行,這是數(shù)據(jù)庫文件的自我安全保護機制之二,防止用戶得到部分文件后造成信息泄露。

      同時,數(shù)據(jù)庫文件的擴展名用戶可以自己定義,這是數(shù)據(jù)庫文件的自我安全保護機制之三,可以起到隱藏身份的作用。

      1.2 3道安全關卡

      數(shù)據(jù)庫文件只有在數(shù)據(jù)庫系統(tǒng)中才可以查看、修改和配置,受到層層保護??梢詫?shù)據(jù)庫中的數(shù)據(jù)比作博物館中的藏品,不法分子要想得到藏品,首先要能夠進入博物館大門,然后要能夠進入藏品的房間,最后還要看你是否有得到藏品的權限,基于此原理,SQL Server軟件為數(shù)據(jù)庫中的數(shù)據(jù)設置了3道關卡。

      第1關,用戶必須登錄到SQL Server的服務器實例上。要登錄到服務器實例,首先要有一個登錄賬戶,即登錄名。SQL Server提供了一個不能被刪除、修改且權限最大的登錄名“sa”,可以為“sa”配置密碼或取消其登錄資格來保護數(shù)據(jù)庫。

      第2關,登錄服務器后,登錄名在數(shù)據(jù)庫中要有對應的用戶賬號,才有訪問數(shù)據(jù)庫的資格,否則無法打開用戶數(shù)據(jù)庫。默認情況下,每個數(shù)據(jù)庫中都有一個權限最高的用戶賬戶dbo,它對應“sa”的登錄名。

      第3關,連接到數(shù)據(jù)庫后,要管理數(shù)據(jù)庫中的對象,用戶賬戶要具有相應的權限。

      1.3 2種安全驗證機制

      安全驗證機制是針對3道關卡中的第1關,有“Windows驗證機制”和“SQL Server驗證機制”兩種。

      用戶在登錄操作系統(tǒng)時需要提供身份驗證信息,因此Windows驗證機制是借助Windows的驗證機制,只要指用戶通過操作系統(tǒng)即可使用數(shù)據(jù)庫系統(tǒng);SQL Server驗證機制是數(shù)據(jù)庫系統(tǒng)自帶的驗證機制,如1.2中介紹的“sa”登錄名以及對應的用戶賬戶,屬于SQL Server的驗證機制[2]。

      1.4 2種身份驗證模式

      在2種安全驗證機制的基礎上,SQL Server數(shù)據(jù)庫系統(tǒng)提供了“僅Windows身份驗證模式”和“混合驗證模式”2種身份驗證模式[3]。

      將SQL Server服務器設置為“僅Windows身份驗證模式”后,只能采用“Windows驗證機制”來驗證用戶的身份;“混合驗證模式”指既可以使用“Windows驗證機制”又可以使用“SQL Server驗證機制”來驗證用戶身份。

      2 安全機制的實現(xiàn)

      根據(jù)3道關卡、2種安全機制和2種身份驗證模式的安全機制,SQL Server能夠實現(xiàn)由大到小、由粗到細的不同級別的安全保護措施。

      2.1 服務器級安全性

      SQL Server是以服務的形式保證數(shù)據(jù)庫的運行,用戶可以在一臺計算機上安裝多個名字不同的服務器實例,每個服務器實例獨立存在,可以擁有各自的數(shù)據(jù)庫及數(shù)據(jù)庫對象。服務器級的安全影響范圍最廣,設計時要慎重。

      (1)登錄賬戶

      “登錄賬戶”是打開數(shù)據(jù)庫服務器的鑰匙,成功登錄服務器后,可以在“安全性”的“登錄名”項下看到當前服務器中所有登錄賬戶,如圖1所示。

      可以在登錄賬戶中創(chuàng)建新的登錄名,新建時會詢問你選擇何種驗證機制,如果是“Windows驗證機制”,必須基于操作系統(tǒng)中的用戶方可建立,如果是“SQL Server驗證機制”,需要用戶輸入登錄密碼。

      圖1 登錄賬戶信息

      有登錄名后就可以在連接到服務器的“數(shù)據(jù)庫引擎”服務時時選擇“身份驗證”機制,正確時就可以連接到服務器,如圖2所示。

      圖2 用登錄名連接到服務器

      通過登錄名的屬性面板中的“狀態(tài)”項,可以“啟用”和“禁用”登錄名,禁用那些高權限的登錄名也可以起到保護數(shù)據(jù)庫安全的作用。

      (2)服務器角色

      服務器角色有9種,每個角色的操作權限不一樣,所有登錄賬戶都必須屬于“public”服務器角色,可以為public角色賦予權限,方便讓所有賬戶具備統(tǒng)一功能,默認情況下“public”角色只可登錄服務器,不具備訪問用戶數(shù)據(jù)庫的權限。服務器各角色及其功能如表1所示。

      表1 服務器角色及功能描述

      在新建登錄賬戶或配置登錄賬戶屬性時,賦予賬戶服務器角色,簡化用戶的設置,其中“sysadmin”服務器角色的權限最高,若登錄賬戶是該角色成員,即使沒有在數(shù)據(jù)庫中創(chuàng)建“數(shù)據(jù)庫用戶”,因具備最高權限,可執(zhí)行任何操作。

      2.2 數(shù)據(jù)庫級安全性

      (1)數(shù)據(jù)庫用戶

      數(shù)據(jù)庫用戶是登錄名在數(shù)據(jù)庫中的映射,若登錄名不屬于“sysadmin”角色,通常都要在數(shù)據(jù)庫中為登錄名創(chuàng)建對應用戶,否則登錄名不能訪問用戶數(shù)據(jù)庫,數(shù)據(jù)庫用戶在“安全性”中的“用戶”項下,如圖3所示。

      在數(shù)據(jù)庫的“用戶”項中可以創(chuàng)建用戶,創(chuàng)建時要選擇用戶所基于的“登錄名”,同時也可以設置用戶的“數(shù)據(jù)庫角色”。

      (2)數(shù)據(jù)庫角色

      數(shù)據(jù)庫設計者可以新建“數(shù)據(jù)庫角色”,開發(fā)者也為數(shù)據(jù)庫設計了10種固定數(shù)據(jù)庫角色,如圖4所示。

      圖3 數(shù)據(jù)庫用戶

      圖4 固定數(shù)據(jù)庫角色

      固定數(shù)據(jù)庫角色名及說明見表2所示。

      表2 固定數(shù)據(jù)庫角色一覽表

      “db_owner”角色擁有數(shù)據(jù)庫級的最高權限,賦予用戶角色時要慎重。

      用戶創(chuàng)建的角色稱為“用戶自定義數(shù)據(jù)庫角色”,創(chuàng)建角色時要賦予角色相應的權限,實現(xiàn)角色的功能。

      (3)權限

      權限是數(shù)據(jù)庫安全管理最細致的一項,不同的對象所具備的權限不同,常用的權限如表3所示。

      表3 常用的權限

      可以將權限授予角色、數(shù)據(jù)庫用戶。使用權限設置用戶或角色的功能可以更好的保護數(shù)據(jù)庫安全,同時要求設計者要具備良好的權限認知能力。

      3 數(shù)據(jù)加密

      第2節(jié)介紹的登錄名、用戶、權限、角色能夠起到保護數(shù)據(jù)的作用,但仍無法避免數(shù)據(jù)被獲取。SQL Server從2000版本開始提供數(shù)據(jù)加密,在2005版本中又增加了列級加密,2008版本引入了透明數(shù)據(jù)加密(TDE),有了數(shù)據(jù)加密技術,即使得到數(shù)據(jù),也要解密才可以查看到正確信息,為數(shù)據(jù)安全加了一層保護[4]。

      SQL Server支持對稱加密(Symmetric Key Encryption)和非對稱加密(Asymmetric Key Encryption)兩種,對稱加密是指加密和解密的密鑰相同,SQL Server提供RC4、RC2、DES和AES等加密算法,非對稱加密是指加密和解密的密鑰不同,如RSA加密算法、數(shù)字證書等。

      與1.2節(jié)介紹的3道關卡一樣,數(shù)據(jù)加密在數(shù)據(jù)庫管理系統(tǒng)中也是分層級的,從加密影響范圍的廣窄依次為服務主密鑰(Service Master Key)、數(shù)據(jù)庫主密鑰(Database Master Key)、對稱密鑰或非對稱密鑰或證書,服務主密鑰影響整個的服務器實例,在安裝服務器實例時自動生成。

      3.1 數(shù)據(jù)庫主密鑰

      數(shù)據(jù)庫主密鑰由服務主密鑰進行加密,每個數(shù)據(jù)庫只能有一個數(shù)據(jù)庫主密鑰,可以用于為創(chuàng)建數(shù)據(jù)庫級別的證書或非對稱密鑰提供加密[5],只能通過T-SQL語句創(chuàng)建。

      如下T-SQL語句創(chuàng)建密碼為“123456”的數(shù)據(jù)庫主密鑰。

      CREATE MASTER KEY ENCRYPTION BY PASSWORD ='123456'

      創(chuàng)建成功后,數(shù)據(jù)庫主密鑰由“123456”的密碼和服務主密鑰共同保護。刪除數(shù)據(jù)庫主密鑰的T-SQL語句如下。

      3.2 創(chuàng)建對稱密鑰、非對稱密鑰和證書

      當數(shù)據(jù)庫主密鑰創(chuàng)建成功后,我們就可以使用這個密鑰創(chuàng)建對稱密鑰,非對稱密鑰和證書。

      (1)創(chuàng)建證書

      證書是一個數(shù)據(jù)庫級的安全對象,可以基于數(shù)據(jù)庫主密鑰創(chuàng)建,也可以在無數(shù)據(jù)庫主密鑰的情況下創(chuàng)建證書。

      下面語句的作用是創(chuàng)建名為Cer_1的證書,它的私鑰是由密碼“123”來保護,該語句可以在無數(shù)據(jù)庫主密鑰的數(shù)據(jù)庫中創(chuàng)建證書。

      CREATE CERTIFICATE Cer_1ENCRYPTION BY PASSWORD=′123′WITH SUBJECT =′Cer1′

      WITH SUBJECT項表示證書的“主題”,是指證書的元數(shù)據(jù)中的字段。

      如下語句是創(chuàng)建名為Cer_2的證書,該語句創(chuàng)建的證書必須基于數(shù)據(jù)庫主密鑰方可實現(xiàn)。

      (2)非對稱密鑰

      創(chuàng)建名為Asy_1基于RSA_2048算法的非對稱密鑰,使用密碼“111”保護私鑰,可以在無數(shù)據(jù)庫主密鑰的數(shù)據(jù)庫中實現(xiàn),語句如下。

      如下語句是創(chuàng)建名為Asy_2基于RSA_512算法的非對稱密鑰,該語句只能在有數(shù)據(jù)庫主密鑰的數(shù)據(jù)庫中方可實現(xiàn)。

      (3)對稱密鑰

      對稱密鑰不能直接基于數(shù)據(jù)庫主密鑰創(chuàng)建,可以基于密碼、非對稱密鑰、對稱密鑰、證書等。

      創(chuàng)建名為Sym_1基于AES_256算法的對稱密鑰,使用密碼“321”保護私鑰,可以在無數(shù)據(jù)庫主密鑰的數(shù)據(jù)庫中實現(xiàn),語句如下。

      創(chuàng)建名為Sym_2的對稱密鑰,使用證書Cer_1對該對稱密鑰進行加密,語句如下。

      創(chuàng)建后,可以在數(shù)據(jù)庫的“安全性”選項下查看創(chuàng)建成功的非對稱密鑰、證書和對稱密鑰,并可以執(zhí)行“刪除”等操作,如圖5所示。

      圖5 查看非對稱密鑰、證書和對稱密鑰

      3.3 列級加密(Column-level Encryption)

      SQL Server在2005版本引入了列加密的功能,可以利用證書,對稱密鑰和非對稱密鑰對需要保護的列進行加密,根據(jù)加密解密的方式不同,內置了4對函數(shù)用于加密解密[6],如表4所示。

      表4 列級加密解密函數(shù)

      列級加密和解密時首先需要將列數(shù)據(jù)類型轉換成VARBINARY類型,且需要將加密和解密的密鑰打開,打開Sym_2密鑰的命令如下。

      密鑰打開后,利用INSERT或UPDATE操作加密數(shù)據(jù),假定表student中的“密碼”列的數(shù)據(jù)類型為VARBINARY,加密語句如下。

      UPDATE student SET 密碼= EncryptByKey(Key_GUID(′abc′),′123′)where 1<>1

      INSERT student(密碼)values(EncryptByKey(KEY_GUID(′aa′),′123′))

      列被加密后,直接查詢查看不到數(shù)據(jù),必須解密后才可以看到實際內容;也無法直接錄入數(shù)據(jù)到該列。

      4 使用觸發(fā)器對象來鞏固安全性

      觸發(fā)器是SQL Server數(shù)據(jù)庫中的一類特殊的數(shù)據(jù)庫對象,當用戶執(zhí)行某項操作時會觸發(fā)某些操作,觸發(fā)器內容用戶可以自己定義。

      SQL Server中的觸發(fā)器分為數(shù)據(jù)操縱(DML)觸發(fā)器和數(shù)據(jù)定義(DDL)觸發(fā)器兩類。INSERT、UPDATE、DELETE關鍵字可定義DML觸發(fā)器,CREATE、ALTER、DROP關鍵字可定義DDL觸發(fā)器。

      使用觸發(fā)器保護數(shù)據(jù)屬于鞏固性質的,可以屏蔽數(shù)據(jù)庫中的某些操作,讓非法用戶的操作不能被正確執(zhí)行。

      4.1 DML觸發(fā)器保護數(shù)據(jù)安全

      DML觸發(fā)器根據(jù)功能的不同,分為AFTER和INSTEAD OF兩種類型[7]。AFTER型先執(zhí)行INSERT、UPDATE、DELETE語句,然后再執(zhí)行觸發(fā)器語句;INSTEAD OF觸發(fā)器也叫做替代觸發(fā)器,如果INSERT、UPDATE、DELETE語句定義了INSTEAD OF觸發(fā)器,當執(zhí)行INSERT、UPDATE、DELETE語句時,真正被執(zhí)行的是觸發(fā)器語句,而非執(zhí)行增、改、刪。這類觸發(fā)器在保護數(shù)據(jù)表方面有一定的作用。

      用AFTER型觸發(fā)器保護數(shù)據(jù)的常用方法是在觸發(fā)器語句中定義事務回滾,以阻止語句被真正執(zhí)行;INSTEAD OF型觸發(fā)器可以將表記錄的增加、修改、刪除操作引向觸發(fā)器語句,阻止操作被真正執(zhí)行。由此可見,DML觸發(fā)器保護數(shù)據(jù)限制多、功能單一,只能作為補充。創(chuàng)建觸發(fā)器的命令格式如下。

      CREATE TRIGGER觸發(fā)器名稱

      ON {表|視圖}{FOR|AFTER|INSTEAD OF}{[INSERT][,][UPDATE][,][DELETE]}

      AS

      觸發(fā)器語句

      FOR與AFTER關鍵字定義的觸發(fā)器執(zhí)行方式相同。下列代碼所創(chuàng)建觸發(fā)器的功能可防止student表中的記錄被刪除。

      CREATE TRIGGER tr_student_delete ON student FOR DELETE

      AS

      ROLLBACK TRANSACTION--事務回滾

      4.2 DDL觸發(fā)器保護數(shù)據(jù)安全

      DDL觸發(fā)器只有AFTER類型,沒有INSTEAD OF型,創(chuàng)建DDL觸發(fā)器的語句格式如下。

      CREATE TRIGGER觸發(fā)器名ON{All Server|DATABASE}{FOR|AFTER}{DDL觸發(fā)語句}

      AS

      觸發(fā)器語句

      說明:ON關鍵字后若是DATABASE,表示數(shù)據(jù)庫級觸發(fā)器,即將觸發(fā)器作用到當前數(shù)據(jù)庫,該數(shù)據(jù)庫執(zhí)行DDL觸發(fā)語句時將觸發(fā)該觸發(fā)器;若為ALL SERVER,表示服務器級觸發(fā)器,即將觸發(fā)器作用到當前服務器上,因此當服務器上任何一個數(shù)據(jù)庫的DDL出發(fā)語句都能激活該觸發(fā)器。常用的DDL觸發(fā)語句見表5所示。

      下列觸發(fā)器TR_DDL_1的功能可阻止在當前數(shù)據(jù)庫中刪除數(shù)據(jù)表和修改數(shù)據(jù)表。

      CREATE TRIGGER TR_DDL_1ON DATABASE FOR DROP_TABLE,ALTER_TABLE

      AS

      ROLLBACK TRANSACTION

      下列觸發(fā)器TR_DDL_2的功能可阻止在當前服務器實例中創(chuàng)建數(shù)據(jù)表和修改數(shù)據(jù)表。

      CREATE TRIGGER TR_DDL_2ON ALL SERVER FOR CREATE_TABLE,ALTER_TABLE

      AS

      ROLLBACK TRANSACTION

      表5 常用的DDL觸發(fā)語句

      5 總結

      數(shù)據(jù)庫設計者和使用者要將保護數(shù)據(jù)的安全性放在第一位,在設計和配置數(shù)據(jù)庫時,應采用各種方式合理的保護數(shù)據(jù)庫,既要合理的防止合法用戶的誤操作,更要有效的防止非法用戶的惡意竊取。

      [1] 吳溥峰,張玉清.數(shù)據(jù)庫安全綜述[J].計算機工程,2006,32(12):85-88.

      [2] 王鳳玲.SQL數(shù)據(jù)庫安全性研究[J].電子技術,2012,39(6):19-20.

      [3] 何斌穎,劉榮.Oracel和SQL Server數(shù)據(jù)庫安全基線審查[J].云南大學學報(自然科學版),2013,35(S2):63-68.

      [4] 李光師,孟祥茹.Oracle中矢量數(shù)據(jù)安全保護方法[J].計算機工程,2012,38(10):102-104.

      [5] 郝文寧,趙恩來,劉玉棟,黃亞,劉軍濤.異構數(shù)據(jù)庫加解密系統(tǒng)的關鍵技術研究與實現(xiàn)[J].計算機應用,2010,30(9):2339-2343.

      [6] Erez Shmueli,Ronen Vaisenberg,Ehud Gudes,Yuval Elovici.Implementing a database encryption solution,design and implementation issues[J].Computers &Security,2014,44(3):33-50.

      [7] Wai Yin Mok,Charles F.Hickman,Christopher D.Allport.Implementing Business Processes:A Database Trigger Approach[J].IGI Global Journal,2013,3(2):671-687.

      猜你喜歡
      觸發(fā)器語句密鑰
      探索企業(yè)創(chuàng)新密鑰
      密碼系統(tǒng)中密鑰的狀態(tài)與保護*
      重點:語句銜接
      一種對稱密鑰的密鑰管理方法及系統(tǒng)
      主從JK觸發(fā)器邏輯功能分析
      電子世界(2017年22期)2017-12-02 03:03:45
      精彩語句
      基于ECC的智能家居密鑰管理機制的實現(xiàn)
      電信科學(2017年6期)2017-07-01 15:45:06
      使用觸發(fā)器,強化安全性
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      對觸發(fā)器邏輯功能轉換的分析
      泰安市| 绵阳市| 新干县| 木兰县| 河间市| 崇州市| 昂仁县| 陵水| 抚顺市| 晴隆县| 中西区| 隆德县| 黎城县| 乌什县| 玉树县| 天全县| 英吉沙县| 开平市| 茶陵县| 彭阳县| 阿鲁科尔沁旗| 驻马店市| 巴南区| 石城县| 驻马店市| 永兴县| 海林市| 湖南省| 长顺县| 五指山市| 依安县| 郸城县| 无极县| 东乡族自治县| 英山县| 彭水| 大方县| 德钦县| 越西县| 光泽县| 安庆市|