MS SQL2005對2000進行了很大的改進,而用戶關系這部分也變得相當復雜了,很多朋友都對此一知半解!下面,我將把我應用中總結的和大家分享下,先從概念入手,希望對不理解的朋友有點提示。
今天我們要說的包括服務器登錄名Server Login,服務器角色Server Role,數據庫用戶DB User,數據庫架構DB Schema,數據庫角色DB Role 。以上幾個名詞應該從服務器與數據庫來區分,服務器包含一到多個數據庫,其中:
服務器登錄名,指有權限登錄到某服務器的用戶;
服務器角色,指一組固定的服務器用戶,默認有9組;
數據庫用戶,指有權限能操作數據庫的用戶;
數據庫角色,指一組固定的有某些權限的數據庫角色;
數據庫架構,指數據庫對象的容器;
而通過下圖可以讓這些概念清晰一些:
即:
因此,新建一個非SA賬戶並建立數據庫的過程可以如下:
1、新建登錄名Login1
2、新建數據庫DB1
3、新建DB1的架構Schema1
4、新建BD1的用戶User1,登錄名對應Login1,默認架構選擇Schema1,角色選擇db_owner
5、在登錄名Login1的屬性窗口裡選擇“用戶映射”,勾選DB1,在用戶裡填寫User1,默認架構選擇"Schema1"
6、至此,新建表名會是Schema1.Table1,其他對象也如此
7、當然還可以新建其他架構的對象Schema2,只有User1擁有該架構,一樣可以訪問,如Schema2.Table2
值得注意的是,當為登錄映射數據庫用戶的時候,多個數據庫可以有相同名稱的用戶,而單獨為某個數據庫新建的用戶,如User1,則在其他數據庫裡不允許同名。