我使用sql server2005,希望对某个用户只有对一个数据库的访问权限
但是设置数据库角色好像不管用,
如果付给该用户sysadmin的服务器角色,不管数据库角色怎样,都可以对所有数据库访问,但是如果去掉sysadmin的服务器角色,不管数据库角色怎样,在操作时都能对这个需要有权限的数据库进行写操作,请高手指点

解决方案 »

  1.   

    数据库->安全性->登录->选择登陆名->属性->选择数据库访问权限
      

  2.   

    如果付给该用户sysadmin的服务器角色
    ----------------------------------------居然给这么大的权限,LZ只需要给用户指定的数据库权限即可,如果是sysadmin即时你否决了连接其他数据库的权限都没有用
      

  3.   

    我可以不把sysadmin的权限给他,可是数据库访问有问题,不能通过系统登陆
      

  4.   

    use master
    grant CONNECT SQL TO uName
    GO
    USE dbname
    CREATE USER uName FOR LOGIN uName
    grant/revoke CONNECT,select ... TO uName
    GO
      

  5.   

    执行上面的语句就可以了,先把sysadmin去掉
      

  6.   

    我可以不把sysadmin的权限给他,可是数据库访问有问题,不能通过系统登陆
    -------------------------------------------------------------------
    不可能啊, 应该是你还改了什么.估计你是改了端点连接的权限, 你试试执行下面的语句后再连接
    USE masterGRANT CONNECT ON ENDPOINT::[TSQL Named Pipes]
    TO [public]GRANT CONNECT ON ENDPOINT::[TSQL Default TCP]
    TO [public]GRANT CONNECT ON ENDPOINT::[TSQL Default VIA]
    TO [public]