日期:2014-05-18  浏览次数:20816 次

新建登陆用户,登陆后备份数据库出现用户没有RESTORE数据库XXX的权限的提示。
我新建登陆用户,代码如下:
C# code


                DataOperate.strCon = "Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=master;";                
                string strSql = "EXEC sp_addlogin 'skyland','1818','es_CostumeStore_01_01'";
                DataOperate.ExecuteCmd(strSql);

               DataOperate.strCon = "Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=es_CostumeStore_01_01;";
                strSql = "sp_adduser 'skyland','skylandUser','db_owner'";
                DataOperate.ExecuteCmd(strSql);


然后用该用户登陆,进行准备份:
C# code

strSql += "RESTORE DATABASE es_CostumeStore_01_01 FROM DISK ='" + pDlg.FileName + "' ";
            strSql += " WITH  MOVE 'es_CostumeStore_01_01_Data' TO '" + Application.StartupPath + @"\database\es_CostumeStore_01_01.MDF', ";
            strSql += " MOVE 'es_CostumeStore_01_01_Log'  TO '" + Application.StartupPath + @"\database\es_CostumeStore_01_01_Log.LDF' ";
            SqlConnection con = new SqlConnection("server=" + strServer + ";database=master;uid=" + strLogonName + ";pwd=" + strPwd);
            SqlCommand sqlcmd = new SqlCommand(strSql, con);



出现如上错误,我知道是新建的登陆用户没有权限,我想问怎样给新建的用户赋权限,谢谢


------解决方案--------------------
http://topic.csdn.net/t/20041120/10/3570984.html
------解决方案--------------------
业管理器--安全性--右键登录--新建登录

常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名

服务器角色项
这个里面不要选择任何东西

数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选 "public ", "db_ownew "

确定,这样建好的用户与上面语句建立的用户一样
---------------------------------------

最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:

--添加只允许访问指定表的用户:
exec sp_addlogin '用户名 ', '密码 ', '默认数据库名 '
http://ynwildfox.blog.sohu.com/172181328.html
方法二:GRANT --授予用户访问权限
http://blog.sina.com.cn/s/blog_669129380100mawi.html