SQL Server 2005中如何新建一个对所有的数据库只有只读权限的登录名(账户)?
能直接用菜单进行操作吗?
还是得用SQL语句执行?

解决方案 »

  1.   

    直接创建就行了,在各数据库中设置它的角色为db_datareader
      

  2.   


    declare @login_name varchar(100),@login_pwd varchar(100)
    set @login_name='test'
    set @login_pwd='123'declare @sql varchar(max),@sql_login varchar(max)
    set @sql_login='CREATE LOGIN '+@login_name+' WITH PASSWORD = '''+@login_pwd+''',CHECK_POLICY=off'
    --print @sql_login
    exec(@sql_login)set @sql='
    exec sp_msforeachdb ''
    use [?]
    if db_name() not in(''''master'''',''''model'''',''''msdb'''',''''distribution'''',''''tempdb'''')
    begin
    if exists(select * from sys.sysusers where name='''''+@login_name+''''')
    drop user '+@login_name+'
    CREATE USER '+@login_name+' FOR LOGIN '+@login_name+'; 
    exec sp_addrolemember ''''db_datareader'''','''''+@login_name+'''''
    end
    ''
    '
    exec(@sql)
      

  3.   

    1、你好,那我有必要把master,model,msdb也设置为db_datareader角色吗?
    2、public这个勾去不掉呀!