国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

確定用戶是否屬于某個角色

2024-07-21 02:33:42
字體:
供稿:網(wǎng)友

  對數(shù)據(jù)庫正常功能的訪問經(jīng)常取決于賦予指定用戶的權(quán)利。例如,治理人員可能需要(一定的)權(quán)限來運行特定的查詢或者存儲過程,而向他們進行報告的用戶則沒有(這一權(quán)限)。 對于一個很小的機構(gòu)而言,你可以為具體的用戶賦予具體的權(quán)利,但是隨著用戶數(shù)量的增長,這種方法會變得越來越難以處理。即使只有50個用戶,維護工作也會成為你的惡夢。
  
  包含我們感愛好數(shù)據(jù)的表格是sysusers和sysmembers。前面一個表格包含有關(guān)于用戶和角色的數(shù)據(jù),而這兩者由IsSQLRole這個數(shù)據(jù)列來區(qū)分,假如數(shù)據(jù)行表示的是一個角色而不是一個用戶,那么IsSQLRole數(shù)據(jù)列就包含有1。下面的代碼列出了所有的用戶和角色:
  
  SELECT Member = Users.name, Role = Roles.Name
  FROM sysusers Users, sysusers Roles, sysmembers Members
  WHERE Roles.uid = Members.groupuid
  AND Roles.issqlrole = 1
  AND Users.uid = Members.memberuid
  ORDER BY 2, 1
  
  要列出屬于指定角色的成員的用戶,就要把代碼更改為下面這樣:
  
  DECLARE @role varchar(100)
  SET @role = 'Managers'
  SELECT MemberName = Users.name, RoleName = Roles.Name
  FROM sysusers Users, sysusers Roles, sysmembers Members
  WHERE Roles.name = @role
  AND Roles.uid = Members.groupuid
  AND Roles.issqlrole = 1
  AND Users.uid = Members.memberuid
  ORDER BY 2, 1
  
  你可能更習慣把這段代碼轉(zhuǎn)化成用戶定義函數(shù)(user-defined function,UDF),它會返回一個布爾函數(shù),用來指示當前用戶是否是所關(guān)心的角色的成員。把變量@role變成一個參數(shù),并傳遞它而不是定義它,就像我在上面做的一樣。利用它,你可以編寫出自己的應用程序代碼,在任何你需要確定給定用戶角色的時候調(diào)用這個函數(shù)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武陟县| 蒙城县| 高阳县| 武穴市| 都匀市| 湘潭县| 绥宁县| 定安县| 阜城县| 米林县| 萝北县| 舟山市| 汶川县| 电白县| 池州市| 伊金霍洛旗| 分宜县| 天柱县| 紫金县| 穆棱市| 阿拉善右旗| 句容市| 顺义区| 濉溪县| 卫辉市| 玉田县| 广德县| 闽侯县| 绥宁县| 衡山县| 大关县| 五峰| 昌乐县| 柘城县| 博白县| 乃东县| 平阴县| 河北省| 高邮市| 塘沽区| 桦川县|