• SQLServer2005中登录,凭据,用户,角色,权限的使用举例


    --1.创建一个Windows登录WinLogin
    create login [XFMS\Winlogin] --注意此处的域名应该是你自己计算机上的名字
    from windows
    go


    --2.创建一个SQLServer登录MyLogin,密码为123456,默认连接数据库为AdventureWorks。
    create login MyLogin
    with password='123456',
         default_database=AdventureWorks
    go
    --现在使用MyLogin进行登录,查看是否可以登录(未经授权是无法访问的)
    --给MyLogin授予一定的权限然后再次尝试登录
    --sp_addsrvrolemember将登录添加到某个角色中去
    --将登录添加到固定服务器角色时,该登录将得到与此角色相关的权限
    --(角色名参考书本P405的表格)
    exec sp_addsrvrolemember MyLogin,sysadmin
    go
    --下面代码功能和上面的功能相同
    grant control server to MyLogin
    go
    --下面的代码为权限的回收语句
    use master
    go
    revoke control server from MyLogin
    go

    --授予创建数据库的权限
    exec sp_addsrvrolemember MyLogin,dbcreator
    --下面语句和上面语句功能相同
    grant create any database
    on Server::XFMS
    to MyLogin
    go
    --回收权限
    revoke create any database from MyLogin
    go

    grant connect sql to MyLogin
    go
    revoke connect sql from MyLogin
    go

    --3.创建一个凭据MyLoginCre,依赖登录为MyLogin使用密码123456。
    create credential MyLoginCre
    with identity='MyLogin',secret='123456'
    go


    --4.在StudentManage中为登录MyLogin创建一个映射用户MyUser。
    use StudentManage
    go
    create user MyUser
    for login MyLogin
    go

    --1).使用print user语句检测当前用户为谁
    print user
    go

    --2).使用下面语句切换用户,查看用户是否切换成功
    use StudentManage
    go
    execute as user='MyUser'
    go
    print user
    go

    --3).执行下面的语句,检测用户能否执行成功,如不成功注意观察错误原因
    use StudentManage
    go
    select * from student
    go

    --4).退出MyUser用户,检测是否成功退出,
    use StudentManage
    go
    print user
    go
    revert
    go
    print user
    go

    --5).给用户MyUser授权能够访问student
    use StudentManage
    go
    grant select on student to MyUser
    go

    --6).最后再以用户MyUser登录执行下面查询语句
    use StudentManage
    go
    execute as user='MyUser'
    go
    select * from student
    go

    --5.在数据库StudentManage中创建角色MyRole
    --1).语法:create role 角色名 authorization 用户名/角色名
    --authorization指定角色为哪个用户或者角色所有,
    --也可以不指定,则使用当前默认用户
    --(使用print user可以查看当前用户是谁,不是dbo请切换)
    create role MyRole --注意此段代码必须在用户dbo下面运行
    go

    --2).向角色MyRole中添加用户MyUser
    --sp_addrolemember 角色名,用户名
    exec sp_addrolemember MyRole,MyUser
    go

    --3).给角色授予权限,则角色中的所有用户都拥有添加的权限
    --先测试如下代码
    use StudentManage
    go
    execute as user='MyUser'
    go
    select * from score
    go

    --然后给角色授予查询score表的权限
    use StudentManage
    go
    revert
    go
    grant select on dbo.score to MyRole
    go
    execute as user='MyUser'
    go
    select * from score
    go

  • 相关阅读:
    学习asp.net比较完整的流程
    时间的获取和转换,C#和Sql
    学习一种新编程语言要做的10几个练习
    分布式网络管理优点总结
    点对点网络大解析
    如何阅读他人的程序代码
    WebConfig
    正则表达式30分钟入门教程
    程序员遇到BUG的解释
    在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/1885945.html
Copyright © 2020-2023  润新知