欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

T-Sql(七)用戶權限操作(grant)

系統 2252 0
原文: T-Sql(七)用戶權限操作(grant)

一般數據庫的權限操作我們很少用,除非一些大型的項目,需要給數據庫配置不同的用戶及權限,防患于未然,今天我們就來了解下t-sql中配置用戶權限操作。

  先看示例代碼:

      
         1
      
      
        --
      
      
        創建登錄名
      
      
         2
      
      
        create
      
      
         login text1


      
      
         3
      
      
        with
      
       password
      
        =
      
      
        '
      
      
        password1
      
      
        '
      
      
        ,


      
      
         4
      
       check_policy 
      
        =
      
      
        off
      
      
        ;


      
      
         5
      
      
         6
      
      
        --
      
      
        修改登錄名
      
      
         7
      
      
        alter
      
      
         login text1


      
      
         8
      
      
        with
      
       name 
      
        =
      
      
         test1


      
      
         9
      
      
        go
      
      
        10
      
      
        alter
      
      
         login test1 disable


      
      
        11
      
      
        12
      
      
        --
      
      
        修改登錄名密碼
      
      
        13
      
      
        alter
      
      
         login test1


      
      
        14
      
      
        with
      
       password
      
        =
      
      
        '
      
      
        123456
      
      
        '
      
      
        15
      
       old_password
      
        =
      
      
        '
      
      
        password1
      
      
        '
      
      
        ;


      
      
        16
      
      
        17
      
      
        --
      
      
        刪除登錄名
      
      
        18
      
      
        drop
      
      
         login test1


      
      
        19
      
      
        --
      
      
        --------------
      
      
        20
      
      
        --
      
      
        創建用戶
      
      
        21
      
      
        use
      
      
         AdventureWorks


      
      
        22
      
      
        create
      
      
        user
      
      
         user1


      
      
        23
      
      
        for
      
      
         login text1


      
      
        24
      
      
        25
      
      
        --
      
      
        修改用戶
      
      
        26
      
      
        alter
      
      
        user
      
      
         user1


      
      
        27
      
      
        with
      
       name
      
        =
      
      
        use2;


      
      
        28
      
      
        29
      
      
        --
      
      
        刪除用戶
      
      
        30
      
      
        drop
      
      
        user
      
      
         user2


      
      
        31
      
      
        32
      
      
        --
      
      
        查看當前數據庫對應的用戶
      
      
        33
      
      
        select
      
      
        USER_NAME
      
      
        ()


      
      
        34
      
      
        SELECT
      
      
        CURRENT_USER
      
      
        AS
      
      
        '
      
      
        Current User Name
      
      
        '
      
      ;
    

這些語法都很簡單我們主需要記住就行,當然通過SQLSERVER的可視化界面也可以配置。

  下面我們也通過一個實例來理解和運用配置用戶權限。

  實例要求:

    1.建立兩個用戶,user1,user2
    2.user1具有操作數據庫ExamMis的所有權限
    3.轉換上下文到USer1下,建立一個函數:f_GetQuestionDetails,該函數返回題目內容(包括題干,分題項,題型三個表的關聯內容)
    4.賦權限給user2:讓其只具有執行該函數的權限;
    5.轉換上下文到user2,執行函數調用。

1, 建立兩個用戶,user1,user2

創建兩個登陸名,并在為登陸名創建user1和user2用戶。

  示例代碼:

      
         1
      
      
        create
      
      
         login TestUser1


      
      
         2
      
      
        with
      
       password
      
        =
      
      
        '
      
      
        password1
      
      
        '
      
      
        ;


      
      
         3
      
      
         4
      
      
        create
      
      
        user
      
      
         User1


      
      
         5
      
      
        for
      
      
         login TestUser1


      
      
         6
      
      
        with
      
       default_schema
      
        =
      
      
        dbo;


      
      
         7
      
      
         8
      
      
        create
      
      
         login TestUser2


      
      
         9
      
      
        with
      
       password
      
        =
      
      
        '
      
      
        password2
      
      
        '
      
      
        ;


      
      
        10
      
      
        11
      
      
        create
      
      
        user
      
      
         User2


      
      
        12
      
      
        for
      
       login TestUser2
    

2, user1具有操作數據庫ExamMis的所有權限

這個操作有三種方法:

    1,SQLSERVER可視化操作。

    2,grant all去給用戶分配權限。

    3,通過SQLSERVER系統自帶的存儲過程分配權限。

  這里我們先講一下grant的用法,grant是用來給用戶分配權限用的。

  我們先看一個示例代碼:

      
        1
      
      
        grant
      
      
        all
      
      
        2
      
      
        on
      
      
        database
      
      
        ::ExamMis


      
      
        3
      
      
        to
      
      
         User1


      
      
        4
      
      
        WITH
      
      
        GRANT
      
      
        OPTION
      
    

這段代碼的意思就是給 User1分配具有操作ExamMis數據庫的一切權限。all關鍵字的意思是所有權限,也可以指定某一權限,比如查詢權限就可以寫grant select,

  當然 on 后面也可以是表,函數,存儲過程,視圖等。

  示例代碼:

      
        1
      
      
        grant
      
      
        select
      
      ,
      
        insert
      
      ,
      
        update
      
      
        2
      
      
        on
      
      
        table
      
      
        ::student


      
      
        3
      
      
        to
      
      
         User1


      
      
        4
      
      
        WITH
      
      
        GRANT
      
      
        OPTION
      
    

?   這段代碼的意思是給用戶user1在student表分配具有查詢,插入,更新的權限,但是沒有刪除得權限。

通過SQLSERVER系統自帶的存儲過程分配權限,示例代碼:

      
        1
      
      
        EXEC
      
       sp_addrolemember N
      
        '
      
      
        db_owner
      
      
        '
      
      , N
      
        '
      
      
        User1
      
      
        '
      
    

?   sp_addrolemember是系統自帶的存儲過程, db_owner 的意思是所有者,可視化操作的時候我們也會看到。當然還有一些其他的一些存儲過程,在文章的后面會給大家整理出來。

3, 轉換上下文到User1下,建立一個函數:f_GetQuestionDetails

執行上下面到User1下:

      
        1
      
      
        EXECUTE
      
      
        AS
      
       LOGIN 
      
        =
      
      
        '
      
      
        TestUser1
      
      
        '
      
    

我們可以通過select USER_NAME(); 來查看當前用戶名。

  下面我們創建函數: f_GetQuestionDetails ,函數具有返回值,返回table。

  示例代碼:

      
        1
      
      
        create
      
      
        function
      
      
         Select_Questions()


      
      
        2
      
      
        returns
      
      
        table
      
      
        3
      
      
        as
      
      
        4
      
      
        return
      
      
        5
      
      
        (


      
      
        6
      
      
        select
      
       t1.
      
        *
      
      ,t2.TypeName,t2.Score,t3.SelectionNo,t3.SelectionTitle,t3.IsAnswer 
      
        from
      
      
         dbo.Questions t1


      
      
        7
      
      
        inner
      
      
        join
      
       dbo.QuestionType t2 
      
        on
      
       t1.TypeNo
      
        =
      
      t2.
      
        [
      
      
        no
      
      
        ]
      
      
        8
      
      
        inner
      
      
        join
      
       dbo.QuestionSelections t3 
      
        on
      
       t1.
      
        [
      
      
        no
      
      
        ]
      
      
        =
      
      
        t3.QuestionNo


      
      
        9
      
       ); 
    

  函數的用法很簡單,就不單列去講解了,和我們編程時候用的方法類似,只是語法不同而已,大家熟悉用就行。

4,函數 賦權限給user2:讓其只具有執行該函數的權限;

這一步我們可以直接用上面提到的grant去給用戶user2分配權限。

  這里我們就多做一部,創建一個角色,然這個角色具有操作這個函數的權限,然后把角色分配給用戶user2。

  一般我們項目的權限管理都是這個設計:用戶->角色->權限。

  示例代碼:

      
        1
      
      
        create
      
       role Select_Fuction  
      
        --
      
      
        創建角色
      
      
        2
      
      
        3
      
      
        GRANT
      
      
        select
      
      
        4
      
      
        ON
      
      
         OBJECT::dbo.Select_Questions


      
      
        5
      
      
        TO
      
      
         Select_Fuction;


      
      
        6
      
      
        7
      
      
        exec
      
       sp_addrolemember 
      
        '
      
      
        Select_Fuction
      
      
        '
      
      ,
      
        '
      
      
        User2
      
      
        '
      
      
        --
      
      
        將Select_Fuction角色添加到User2用戶中
      
    

5.轉換上下文到user2,執行函數調用。

  示例代碼:

      
        1
      
      
        REVERT;


      
      
        2
      
      
        EXECUTE
      
      
        AS
      
       LOGIN 
      
        =
      
      
        '
      
      
        TestUser2
      
      
        '
      
      
        3
      
      
        select
      
      
        USER_NAME
      
      
        ()


      
      
        4
      
      
        5
      
      
        select
      
      
        *
      
      
        from
      
       Select_Questions()
    

REVERT;的意思是切換上下文。

 ? 執行完操作我們把登陸名,用戶名刪掉:

      
        1
      
      
        drop
      
      
        function
      
      
         Select_Questions


      
      
        2
      
      
        drop
      
      
         login TestUser1


      
      
        3
      
      
        drop
      
      
         login TestUser2


      
      
        4
      
      
        drop
      
      
        user
      
      
         user1


      
      
        5
      
      
        drop
      
      
        user
      
       user2
    

? 用戶權限配置系統存儲過程

      
         1
      
      
        sp_addlogin 登錄名,登陸密碼,默認數據庫,默認語言,安全碼,是否加密


      
      
         2
      
      
        sp_password 舊密碼,新密碼,指定登錄號


      
      
         3
      
      
        sp_defaultdb 指定登錄號,默認數據庫


      
      
         4
      
      
        sp_defaultlanguage 指定登錄號,默認語言


      
      
         5
      
      
        sp_helplogins 指定登錄號


      
      
         6
      
      
        sp_droplogin 指定登錄號


      
      
         7
      
      
         8
      
      
        --
      
      
        -----------------------數據庫用戶管理---
      
      
         9
      
      
        sp_grantdbaccess 登錄號,數據庫用戶名


      
      
        10
      
      
        sp_helpuser 數據庫用戶名


      
      
        11
      
      
        sp_revokedbaccess 指定數據庫用戶名


      
      
        12
      
      
        13
      
      
        --
      
      
        ----------------------服務器角色--------
      
      
        14
      
      
        sp_addsrvrolermemeber 登陸賬號名,服務器角色名


      
      
        15
      
      
        sp_dropsrvrolermember 登陸用戶名,服務器角色名


      
      
        16
      
      
        17
      
      
        --
      
      
        ----------------------數據庫角色---------
      
      
        18
      
      
        19
      
      
        sp_addrole 數據庫角色名,數據庫角色的所有者


      
      
        20
      
      
        sp_droprole 數據庫角色名


      
      
        21
      
      
        22
      
      
        --
      
      
        ----------創建數據庫角色的成員----
      
      
        23
      
      
        24
      
      
        sp_addrolemember 數據庫角色名,數據庫用戶


      
      
        25
      
       sp_droprolemember 數據庫角色名,數據庫用戶
    

  t-sql中的用戶權限配置就講到這,這一部分的內容我們很少去涉及,但是還是了解一些,說不準哪天DB不在,經理讓你去配數據庫用戶呢,編程的都不會,就你會,自己是不是很有面子啊。哈哈。

  以后繼續整理一下編程相關的知識,請大家多多關注。。。

T-Sql(七)用戶權限操作(grant)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产亚洲综合一区在线 | 亚洲黄色色图 | 国产在线欧美精品中文一区 | 天天久久 | 狠狠躁夜夜躁人人爽天天miya | 日本福利视频 | 国产欧美日韩一区二区三区四区 | 国产一区二 | 五月婷婷狠狠爱 | 蜜臀AV国产精品久久久久 | 午夜影院免费视频 | 久久久综合网 | 99久久精品国产自免费 | 丁香六月伊人 | 日韩影视在线 | 久久久久黄 | 日韩加勒比在线 | 亚洲综合久久伊人热 | 奇米影视四色7777 | 亚洲欧美日韩在线观看播放 | 一级做a爱片特黄在线观看yy | 日韩久久久久久 | 国产高清在线精品一区αpp | 小明永久成人一区二区 | 91成人在线免费视频 | 国产大伊香蕉精品视频 | 国产色拍拍视频在线 | 一区二区三区欧美大片 | 久久午夜精品 | 国产女人成人精品视频 | 五月天激激婷婷大综合蜜芽 | 国产精品久久久久久亚洲色 | 天天色色色 | 草樱av| 中文字幕精品视频 | 午夜视频久久 | 国产短视频精品区第一页 | 免费一级大毛片a一观看不卡 | 国产超91 | 色综合美国色农夫网 | 傲视影院午夜毛片 |