创建database的问题 我用的是 sql2005 ,在用windows身份登录的时候给一个已经存在的登录名授权语句:grant create database to MyUser3错误提示:消息 15151,级别 16,状态 1,第 1 行无法对 用户 'MyUser3' 执行 查找,因为它不存在,或者您没有所需的权限。这是什么问题?怎么样解决? 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CREATE LOGIN shcooper with PASSWORD = 'Baz1nga' Grant Create database to shcoper;--消息 15151,级别 16,状态 1,第 1 行无法对 用户 'shcoper' 执行 查找,因为它不存在,或者您没有所需的权限。Create user myuser From login shcooper;Grant Create database to myuser;命令已成功完成。应该是对用户授权而不是对登录名授权。 你的Windows登录账号权限足够吗? MyUser3 显然还不是一个user,你可以到数据库用户中查看是否存在。 一般流程是先创建login,然后映射为用户user,这个时候才给user授予 datareader/dbowner/dbwriter等权限,才能操作具体的数据库 login是决定能否登入(以什么样的 server角色如sysadmin,ddladmin,systemadmin....),而user则是决定以什么样的数据库访问角色(如datareader,datawriter,dbowner....)来访问数据库的 3楼说的很正确,数据库对应的user还没有创建。 ---这是sp_sp_grantdbaccess 存储过程的部分内容,可以看到,--如果你使用默认用户名参数,当你使用这个存储过程是,它自己创建了一个用户,用户名默认是登录名--另外,你可以从 sys.sysusers 这个视图上看到增加后的用户。 -- Form Create User statement select @stmtU = 'CREATE USER ' select @stmtU = @stmtU + quotename(@name_in_db, ']') select @stmtU = @stmtU + ' FOR LOGIN ' select @stmtU = @stmtU + quotename(@loginame, ']') if @isgrp = 0 begin select @stmtU = @stmtU + ' WITH DEFAULT_SCHEMA = ' select @stmtU = @stmtU + quotename(@name_in_db, ']') end sqlserver2000+jsp乱码问题,急求解决!!! 高手请进,这样的按周统计如何实现?查询过以前的旧帖没有类似的。 取最大编号 access query 查询结果中多加一列显示行号 程序成长之路。结合自己的亲身经验与体会描述一下从初学者到程序员的具体过程 求助:关于SQL2000+Win2000分布式应用的问题,MSDTC 不可用。 sql sever数据库维护需要做哪些事? 如何在一个表中插入多条记录 为什么没人理我,我第一次发表贴子,CSDN很让我失望! 菜鸟的问题:关于SQL和ORACLE的运行环境。 对 执行存储过程时参数 的疑问 关于sql语句修改表中所有满足条件的语句
with PASSWORD = 'Baz1nga'
Grant Create database to shcoper;
--消息 15151,级别 16,状态 1,第 1 行
无法对 用户 'shcoper' 执行 查找,因为它不存在,或者您没有所需的权限。
Create user myuser From login shcooper;
Grant Create database to myuser;
命令已成功完成。
应该是对用户授权而不是对登录名授权。
一般流程是先创建login,然后映射为用户user,这个时候才给user授予 datareader/dbowner/dbwriter等权限,才能操作具体的数据库 login是决定能否登入(以什么样的 server角色如sysadmin,ddladmin,systemadmin....),而user则是决定以什么样的数据库访问角色(如datareader,datawriter,dbowner....)来访问数据库的
---这是sp_sp_grantdbaccess 存储过程的部分内容,可以看到,
--如果你使用默认用户名参数,当你使用这个存储过程是,它自己创建了一个用户,用户名默认是登录名
--另外,你可以从 sys.sysusers 这个视图上看到增加后的用户。
-- Form Create User statement
select @stmtU = 'CREATE USER '
select @stmtU = @stmtU + quotename(@name_in_db, ']')
select @stmtU = @stmtU + ' FOR LOGIN '
select @stmtU = @stmtU + quotename(@loginame, ']')
if @isgrp = 0
begin
select @stmtU = @stmtU + ' WITH DEFAULT_SCHEMA = '
select @stmtU = @stmtU + quotename(@name_in_db, ']')
end