*/ use[master] go -- 檢查數據庫 [RBAC]是否存在,如果存在則刪除(只測試用,不然會丟數據.) -- Search from the sysdatabase to see that if the [RBAC] database exist. -- If exists then drop it else create it. ifexists(select*from sysdatabases where name ='RBAC') dropdatabase[RBAC] go -- 創建數據庫 [RBAC] -- Create the database named by '[RBAC]'. createdatabase[RBAC] go -- 使用數據庫 [RBAC] -- Use the database of '[RBAC]'. use[RBAC] go -- 創建 "用戶" 數據表 [RBAC_User] -- Create the datatable named by '[RBAC_User]' to save users. createtable[RBAC_User] ( --用戶編號 [User_ID]intprimarykeynotnull, --用戶名稱 [User_Name]varchar(20) notnull, --用戶密碼 [User_PassWord]varchar(20) notnull, --用戶狀態 [User_Lock]bitnotnull ) go -- 添加測試數據 -- Add data for test insertinto[RBAC_User]values(1,'FightingYang','PassWord',0); go insertinto[RBAC_User]values(2,'Supper3000','Teacher',0); go insertinto[RBAC_User]values(3,'JianzhongLi','Teacher',1); go select*from[RBAC_User] go -- 創建 "組" 數據表 [RBAC_Group] -- Create the datatable named by '[RBAC_Group]' to save groups. createtable[RBAC_Group] ( --組編號 [Group_ID]intprimarykeynotnull, --組名稱 [Group_Name]varchar(20) notnull ) go -- 添加測試數據 -- Add data for test insertinto[RBAC_Group]values(1,'編程愛好者'); go insertinto[RBAC_Group]values(2,'MSDN老師'); go select*from[RBAC_Group] go -- 創建 "角色" 數據表 [RBAC_Role] -- Create the datatable named by '[RBAC_Role]' to save roles. createtable[RBAC_Role] ( --角色編號 [Role_ID]intprimarykeynotnull, --角色名稱 [Role_Name]varchar(20) notnull ) go -- 添加測試數據 -- Add data for test insertinto[RBAC_Role]values(1,'admin'); go insertinto[RBAC_Role]values(2,'user'); go select*from[RBAC_Role] go -- 創建 "資源" 數據表 [RBAC_Resource] -- Create the datatable named by '[RBAC_Resource]' to save Resources. createtable[RBAC_Resource] ( --資源編號 [Resource_ID]intprimarykeynotnull, --資源名稱 [Resource_Name]varchar(20) notnull ) go -- 添加測試數據 -- Add data for test insertinto[RBAC_Resource]values(1,'音頻'); go insertinto[RBAC_Resource]values(2,'視頻'); go select*from[RBAC_Resource] go -- 創建 "操作" 數據表 [RBAC_Operate] -- Create the datatable named by '[RBAC_Operate]' to save Operates. createtable[RBAC_Operate] ( --操作編號 [Operate_ID]intprimarykeynotnull, --操作名稱 [Operate_Name]varchar(10) notnull ) go -- 添加測試數據 -- Add data for test insertinto[RBAC_Operate]values(1,'添加'); go insertinto[RBAC_Operate]values(2,'讀取'); go insertinto[RBAC_Operate]values(3,'編寫'); go insertinto[RBAC_Operate]values(4,'刪除'); go select*from[RBAC_Operate] go -- 創建 "權限" 數據表 [RBAC_Privilege] -- Create the datatable named by [RBAC_Privilege] to save privileges. createtable[RBAC_Privilege] ( --權限編號 [Privilege_ID]intprimarykeynotnull, --資源編號 [Resource_ID]intforeignkeyreferences[RBAC_Resource]([Resource_ID]) notnull, --操作編號 [Operate_ID]intforeignkeyreferences[RBAC_Operate]([Operate_ID]) notnull ) go -- 添加測試數據 -- Add data for test -- 第一條權限是對"音頻"的"添加"權限 insertinto[RBAC_Privilege]values(1,1,1); go -- 第二條權限是對"音頻"的"讀取"權限 insertinto[RBAC_Privilege]values(2,1,2); go -- 第三條權限是對"音頻"的"編寫"權限 insertinto[RBAC_Privilege]values(3,1,3); go -- 第四條權限是對"音頻"的"刪除"權限 insertinto[RBAC_Privilege]values(4,1,4); go -- 第五條權限是對"視頻"的"讀取"權限 insertinto[RBAC_Privilege]values(5,2,1); go -- 第六條權限是對"視頻"的"讀取"權限 insertinto[RBAC_Privilege]values(6,2,2); go -- 第七條權限是對"視頻"的"編寫"權限 insertinto[RBAC_Privilege]values(7,2,3); go -- 第八條權限是對"視頻"的"刪除"權限 insertinto[RBAC_Privilege]values(8,2,4); go select*from[RBAC_Operate] go -- 創建 "授權" 數據表 [RBAC_Impower] -- Create the datatable named by [RBAC_Impower] to save Impower. createtable[RBAC_Impower] ( --授權編號 [Impower_ID]intprimarykeynotnull, --角色編號 [Role_ID]intforeignkeyreferences[RBAC_Role]([Role_ID]) notnull, --權限編號 [Privilege_ID]intforeignkeyreferences[RBAC_Privilege]([Privilege_ID]) notnull ) go -- 添加測試數據 -- Add data for test -- 第一條授權內容"admin"具有'對"音頻"的"添加"權限' insertinto[RBAC_Impower]values(1,1); go -- 第二條授權內容"admin"具有'對"音頻"的"讀取"權限' insertinto[RBAC_Impower]values(2,2); go -- 第三條授權內容"admin"具有'對"音頻"的"編寫"權限' insertinto[RBAC_Impower]values(3,3); go -- 第四條授權內容"admin"具有'對"音頻"的"刪除"權限' insertinto[RBAC_Impower]values(4,4); go -- 第五條授權內容"admin"具有'對"視頻"的"添加"權限' insertinto[RBAC_Impower]values(5,5); go -- 第六條授權內容"admin"具有'對"視頻"的"讀取"權限' insertinto[RBAC_Impower]values(6,6); go -- 第七條授權內容"admin"具有'對"視頻"的"編寫"權限' insertinto[RBAC_Impower]values(7,7); go -- 第八條授權內容"admin"具有'對"視頻"的"刪除"權限' insertinto[RBAC_Impower]values(8,8); go -- 第九條授權內容"user"具有'對"音頻"的"讀取"權限' insertinto[RBAC_Impower]values(9,2); go -- 第十條授權內容"user"具有'對"視頻"的"讀取"權限' insertinto[RBAC_Impower]values(10,5); go select*from[RBAC_Impower] go -- 添加測試數據 -- Add data for test -- 組所具備的角色的數據第一條的內容是"MSDN老師"具有"admin"的角色 insertinto[RBAC_GroupRole]values(1,2,1); go -- 組所具備的角色的數據第二條的內容是"編程愛好者"具有"user"的角色 insertinto[RBAC_GroupRole]values(2,1,2); go select*from[RBAC_GroupRole] go -- 創建 "用戶組" 數據表 [RBAC_UserGroupRole] -- Create the datatable named by '[RBAC_UserGroupRole]' to save userGroupRoles. createtable[RBAC_UserGroupRole] ( --用戶組編號 [UserGroup_ID]intprimarykeynotnull, --用戶編號 [User_ID]intforeignkeyreferences[RBAC_User]([User_ID]) notnull, --組編號 [Group_ID]intforeignkeyreferences[RBAC_Group]([Group_ID]) notnull, --角色編號 [Role_ID]intforeignkeyreferences[RBAC_Role]([Role_ID]) notnull ) go -- 添加測試數據 -- Add data for test -- 第一條用戶組數據是"FightingYang"屬于"編程愛好者"組,在組中的角色是"admin" insertinto[RBAC_UserGroup]values(1,1,1,1); go -- 第二條用戶組數據是"Supper3000"屬于"MSDN老師"組,在組中的角色是"admin" insertinto[RBAC_UserGroup]values(2,2,2,1); go -- 第三條用戶組數據是"JianzhongLi"屬于"MSDN老師"組,在組中的角色是"user" insertinto[RBAC_UserGroup]values(3,3,2,2); go select*from[RBAC_UserGroupRole] go