设置了mysql 只读权限限的用户 进行破坏性查询 会拖垮数据库服务器吗

为数据库建立对库只读用户sqlserver - CSDN博客
为数据库建立对库只读用户sqlserver
在保密单位,可能在第三方审核单位要求下会要读取部分数据,这时候需要给他们单独建立一个用户防止意外或故意修改数据,sqlserver下可以对其进行简单的设置。
首先建立用户,以下是服务器角色和用户映射的设置。
设置好之后,就可以达到对整个数据库的只读控制,这里用了datareader角色,表示只读,为了以防万一,我附加了denydatawriter角色,防止增删改操作。
效果如下:
另外,如果要控制到表上的话,这里引用一下网上找到的
--先创建测试库test_tmp &
--根据现有的表创建两张表 &
SELECT&TOP&100&*&INTO&test_tab1&FROM&mistest_09428.dbo. &
SELECT&TOP&100&*&INTO&test_tab2&FROM&mistest_09428.dbo. &
--创建角色 &
_exec&sp_addrole&'test_role1'&; &
--分配select的权限给角色test_role1 &
GRANT&SELECT&ON&test_tab1&TO&test_role1; &
GRANT&SELECT&ON&test_tab2&TO&test_role1; &
--add登陆dap570,密码dap570,默认库为test_tmp &
_exec&sp_addlogin&'dap570','dap570','test_tmp'; &
--给dap570添加帐户test &
_exec&sp_grantdbaccess&'dap570','test' &
--将角色test_role1分配给text &
_exec&sp_addrolemember&'test_role1','test'; &
--换dap570来登录数据库test_tmp &
--然后测试 &
DELETE&FROM&&test_tab1 &
INSERT&INTO&test_tab1(ingotno)&VALUES('2222') &
UPDATE&test_tab1&SET&ingotno&=&'3333'&
本文已收录于以下专栏:
相关文章推荐
要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权:
获得准许连接 SQL Server 服务器的权利;获得访问特定数据库中数据的权利(select, update...
最近几次附加已有数据库文件(MDF)时,经常碰到附加后的数据库在管理器中显示只读字样的问题,一时没有找到解决办法。
在网上我也搜索了一番,但是都未能解决,最终发现一个简单的设置可以解决:
打开数据库的...
翻译自:/sqlservertip/2711/different-ways-to-make-a-table-read-only-in-a-sql-ser...
在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用。
SQLServer Always On 可用性组副本是允许只读的,默认情况下不可读。
其中副本的可读性有几个选项:
NO : 不可连接到副本数据库,因此也不可读。默认设置。
Read-intent ...
最近在熬夜做项目,所以总是在公司做完,回来在写一部份,从公司数据库上分离的数据库附加到家里的SQL Server时发现数据库不管怎么附加都是只读的.
今天终于解决了
问题出在用户权限上.
在sqlserver2005中附加数据库时,附加的数据库会变成只读的,只能进行查询操作。
解决方法:
1 打开SqlSer...
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Pg权限分为两部分,一部分是“系统权限”或者数据库用户的属性,可以授予role或user(两者区别在于login权限);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。在pg里,对acl模型做了简化,组和角色都是role,用户和角色的区别是角色没有login权限。
可以用下面的命令创建和删除角色,
CREATE ROLE name;
DROP ROLE name;
为了方便,也可以在 shell 命令上直接调用程序
和 ,这些工具对相应命令提供了封装:
createuser name
dropuser name
数据库对象上的权限有:SELECT,INSERT, UPDATE,DELETE,RULE,
REFERENCES,TRIGGER,CREATE, TEMPORARY,EXECUTE,和
USAGE等,具体见下面定义
typedefuint32AclMode;&&&&&&&&
/* a bitmask of privilege bits */
ACL_INSERT&&&&& (1&&0)&
/* forrelations */
#defineACL_SELECT&&&&&
#defineACL_UPDATE&&&&&
#defineACL_DELETE&&&&&
#defineACL_TRUNCATE&&&
#defineACL_REFERENCES&
#defineACL_TRIGGER&&&&
#defineACL_EXECUTE&&&&
(1&&7)& /* for functions */
#defineACL_USAGE&&&&&&
(1&&8)& /* for languages, namespaces, FDWs, and
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&* servers */
#defineACL_CREATE&&&&&
(1&&9)& /* for namespaces and databases */
#defineACL_CREATE_TEMP (1&&10)
/* for databases */
#defineACL_CONNECT&&&&
(1&&11) /* for databases */
#defineN_ACL_RIGHTS&&&
12&&&&& /* 1plus the last 1&&x */
#defineACL_NO_RIGHTS&&
/*Currently, SELECT ... FOR UPDATE/FOR SHARE requires UPDATE privileges */
#defineACL_SELECT_FOR_UPDATE&&
ACL_UPDATE
我们可以用特殊的名字 PUBLIC 把对象的权限赋予系统中的所有角色。 在权限声明的位置上写 ALL,表示把适用于该对象的所有权限都赋予目标角色。
beigang=#& grantall on schema csm_
beigang=# revoke all on schema csm_
每种对象的all权限定义如下:
Bitmasks defining &allrights& for each supported object type
#defineACL_ALL_RIGHTS_COLUMN&&&&&&
(ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_REFERENCES)
#defineACL_ALL_RIGHTS_RELATION
&&& (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER)
#defineACL_ALL_RIGHTS_SEQUENCE&&&&
(ACL_USAGE|ACL_SELECT|ACL_UPDATE)
#defineACL_ALL_RIGHTS_DATABASE&&&&
(ACL_CREATE|ACL_CREATE_TEMP|ACL_CONNECT)
ACL_ALL_RIGHTS_FDW&&&&&&&&& (ACL_USAGE)
#defineACL_ALL_RIGHTS_FOREIGN_SERVER (ACL_USAGE)
#defineACL_ALL_RIGHTS_FUNCTION&&&&
(ACL_EXECUTE)
#defineACL_ALL_RIGHTS_LANGUAGE&&&&
(ACL_USAGE)
#defineACL_ALL_RIGHTS_LARGEOBJECT&
(ACL_SELECT|ACL_UPDATE)
#defineACL_ALL_RIGHTS_NAMESPACE&&&
(ACL_USAGE|ACL_CREATE)
#defineACL_ALL_RIGHTS_TABLESPACE&&
(ACL_CREATE)
用户的属性可参见下图:
pg_roles提供访问数据库角色有关信息的接口。 它只是一个
表的公开可读部分的视图,把口令字段用空白填充了。
Table 42-39.pg_roles字段
有超级用户权限的角色
rolcreaterole
可以创建更多角色的角色
rolcreatedb
可以创建数据库的角色
rolcatupdate
可以直接更新系统表的角色。(除非这个字段为真,否则超级用户也不能干这个事情。)
rolcanlogin
可以登录的角色,也就是说,这个角色可以给予初始化会话认证的标识符。
rolpassword
不是口令(总是 ********)
rolvaliduntil
timestamptz
口令失效日期(只用于口令认证);如果没有失效期,为 NULL
运行时配置变量的会话缺省
下面实验验证
先创建一个角色xxx,再创建一个超级用户csm、普通用户csm_ca,csm用户创建一个数据库testdb,在这个数据库里创建一个schema:csm_ca,然后赋予普通用户csm_ca操作数据库testdb里schema:csm_ca里的表的权限。
Create role:
testdb=# create rol
CREATE ROLE
Create user:
testdb=# create user csm with superuserpassword 'csm';
CREATE ROLE
testdb=# create user csm_ca with password 'csm_ca';
CREATE ROLE
testdb=# \du
-[ RECORD 1]--------------------------------------
角色名称 | csm
属性&&&& | 超级用户
成员属于 | {}
-[ RECORD 2]--------------------------------------
角色名称 | csm_ca
属性&&&& |
成员属于 | {}
-[ RECORD 3 ]--------------------------------------
角色名称 | postgres
属性&&&& | 超级用户, 建立角色, 建立 DB, Replication
成员属于 | {}
-[ RECORD 4]--------------------------------------
角色名称 | xxx
属性&&&& | 超级用户, 无法登录
成员属于 | {}
testdb=# SELECT * FROM pg_
-[ RECORD 1 ]---------+---------
rolname&&&&&&&&&&&&&& | postgres
rolsuper&&&&&&&&&&&&& | t
rolinherit&&&&&&&&&&& | t
rolcreaterole&&&&&&&& | t
rolcreatedb&&&&&&&&&& | t
rolcreatedblink&&&&&& | t
rolcreatepublicdblink | t
roldroppublicdblink&& | t
rolcatupdate&&&&&&&&& | t
rolcanlogin&&&&&&&& &&| t
rolreplication&&&&&&& | t
rolconnlimit&&&&&&&&& | -1
rolpassword&&&&&&&&&& | ********
rolvaliduntil&&&&&&&& |
rolconfig&&&&&&&&&&&& |
oid&&&&&&&&&&&&&&&&&& | 10
-[ RECORD 2 ]---------+---------
rolname&&&&&&&&&&&&&& | csm
rolsuper&&&&&&&&&&&&& | t
rolinherit&&&&&&&&&&& | t
rolcreaterole&&&&&&&& | f
rolcreatedb&&&&&&&&&& | f
rolcreatedblink&&&&&& | f
rolcreatepublicdblink | f
roldroppublicdblink&& | f
rolcatupdate&&&&&&&&& | t
rolcanlogin&&&&&&&&&& | t
rolreplication&&&&&&& | f
rolconnlimit&&&&&&&&& | -1
rolpassword&&&&&&&&&& | ********
rolvaliduntil&&&&&&&& |
rolconfig&&&&&&&&&&&& |
oid&&&&&&&&&&&&&&&&&& | 24598
-[ RECORD 3 ]---------+---------
rolname&&&&&&&&&&&&&& | csm_ca
rolsuper&&&&&&&&&&&&& | f
rolinherit&&&&&&&&&&& | t
rolcreaterole&&&&&&&& | f
rolcreatedb&&&&&&&&&& | f
rolcreatedblink&&&&&& | f
rolcreatepublicdblink | f
roldroppublicdblink&& | f
rolcatupdate&&&&&&&&& | f
rolcanlogin&&&&&&&&&& | t
rolreplication&&&&&&& | f
rolconnlimit&&&&&&&&& | -1
rolpassword&&&&&&&&&& | ********
rolvaliduntil&&&&&&&& |
rolconfig&&&&&&&&&&&& |
oid&&&&&&&&&&&&&&&&&& | 24599
-[ RECORD 4 ]---------+---------
rolname&&&&&&&&&&&&&& | xxx
rolsuper&&&&&&&&&&&&& | t
rolinherit&&&&&&&&&&& | t
rolcreaterole&&&&&&&& | f
rolcreatedb&&&&&&&&&& | f
rolcreatedblink&&&&&& | f
rolcreatepublicdblink | f
roldroppublicdblink&& | f
rolcatupdate&&&&&&&&& | t
rolcanlogin&&&&&&&&&& | f
rolreplication&&&&&&& | f
rolconnlimit&&&&&&&&& | -1
rolpassword&&&&&&&&&& | ********
rolvaliduntil&&&&&&&& |
rolconfig&&&&&&&&&&&& |
oid&&&&&&&&&&&&& &&&&&| 24600
postgres=# \c beigang
You are now connected to database &beigang& as user &csm&.
Csm用户在beigang里创建schema: csm_ca
beigang=# create schema csm_
CREATE SCHEMA
验证模式csm_ca和用户csm_ca
beigang=# \dn
&& 架构模式列表
& 名称& |& 拥有者
--------+----------
&csm_ca | csm
&dbo&&& | postgres
&public | postgres
&sys&&& | postgres
(4 行记录)
beigang=# \du
&&&&&&&&&&&&&&&&&&&&&&&&&&& 角色列表
&角色名称 |&&&&&&&&&&&&&&&&&& 属性&&&&&&&&&&&&&&&&&& | 成员属于
----------+------------------------------------------+----------
&csm&&&&& | 超级用户&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& | {}
&csm_ca&& |&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& | {}
&postgres | 超级用户, 建立角色, 建立 DB, Replication | {}
&xxx&&&&& | 超级用户, 无法登录&&&&&&&&&&&&&&&&&&&&&& | {}
超级用户csm给普通用户csm_ca授予操作schema csm_ca的权限
beigang=#& grant all on schema csm_ca to csm_
beigang=# grant all on all tables in schema csm_ca to csm_
pg中组就是role,操作见以下
beigang=# grant xxx to csm_
GRANT ROLE
beigang=# revoke xxx from csm_
REVOKE ROLE
Pg documentation
src/include/nodes/parsenodes.h
src/include/utils/acl.h
-----------------
转载请著明出处,来自以下博客或mail至联系:
blog.csdn.net/beiigang
本文已收录于以下专栏:
相关文章推荐
默认用户postgres安装完成后,会自动在操作系统和postgres数据库中分别创建一个名为postgres的用户以及一个同样名为postgres的数据库。登录
方式1:切换到postgres同名用...
最近一直在使用Postgresql,命令总是记不住,就索性整理下来,方便自己,也给大家分享下。
Postgresql常见操作指令:
连接数据库, 默认的用户和数据库是postgres
...
1 首先,在navicat  premium中关闭所有的连接,如
2 在psql中新建数据库类的,即可,之后在navicat  premium中显示即可。
1、错误描述2、错误原因     在PostgreSQL数据库中,创建数据库表时,弹出上述错误提示框3、解决办法
Map如果想要有序的话,需要应用LinkedHashMap
1 先用SwichHosts切换为对应的环境,之后再进行测试准备,用fiddler代理类的
1 谷歌调试
浏览器打开网页,选择界面某一个按钮,用F12打开浏览器,右键-&检查-&在Elements界面,可以看到该按钮的HTML元素,找到对应的id或者class属性,如id=&su&
,之后可...
Postgresql数据库权限功能小结Postgresql数据库支持灵活的权限管理,可以控制一个角色(组、用户)对某张表的读、写、更新、删除等操作权限、执行某个函数的权限以及操作(使用、更新等)视图、...
Pg权限分为两部分,一部分是“系统权限”或者数据库用户的属性,可以授予role或user(两者区别在于login权限);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库...
关于PostgreSQL数据库中的表空间,user,role,权限,模式(schema)的概念.
他的最新文章
讲师:钟钦成
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)mysql更改用户权限
This entry was posted by admin Monday, 26 April, 2010
1.&grant all on *.* to&&identified by &yourpassword&;&&&这个还可以顺带设置密码。2.& &&&刷新一下,让权限生效。mysql的一些其他的管理,可以用mysqladmin命令。可以用来设置密码什么的。
grant方面的详细信息可以看我下面的转载:本文实例,运行于 MySQL 5.0 及以上版本。
MySQL 赋予用户权限命令的简单格式可概括为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to&grant insert on testdb.* to&grant update on testdb.* to&grant delete on testdb.* to&
或者,用一条 MySQL 命令来替代:
grant select, insert, update, delete on testdb.* to&
二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 MySQL 数据表结构权限。
grant create on testdb.* to&;grant alter on testdb.* to&;grant drop&&&on testdb.* to&;
grant 操作 MySQL 外键权限。
grant references on testdb.* to&;
grant 操作 MySQL 临时表权限。
grant create temporary tables on testdb.* to&;
grant 操作 MySQL 索引权限。
grant index on testdb.* to&;
grant 操作 MySQL 视图、查看视图源代码 权限。
grant create view on testdb.* to&;grant show&&&view on testdb.* to&;
grant 操作 MySQL 存储过程、函数 权限。
grant create routine on testdb.* to&; & now, can show procedure statusgrant alter routine on testdb.* to&; & now, you can drop a proceduregrant execute&&&&&&&&on testdb.* to&;
三、grant 普通 DBA 管理某个 MySQL 数据库的权限。
grant all privileges on testdb to&
其中,关键字 &privileges& 可以省略。四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。
grant all on *.* to&
五、MySQL grant 权限,分别可以作用在多个层次上。
1. grant 作用在整个 MySQL 服务器上:
grant select on *.* to&; & dba 可以查询 MySQL 中所有数据库中的表。grant all&&&&on *.* to&; & dba 可以管理 MySQL 中的所有数据库
2. grant 作用在单个数据库上:
grant select on testdb.* to&; & dba 可以查询 testdb 中的表。
3. grant 作用在单个数据表上:
grant select, insert, update, delete on testdb.orders to&;
4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to&;
5. grant 作用在存储过程、函数上:
grant execute on procedure testdb.pr_add to&&dba&@'localhost&grant execute on function testdb.fn_add to&&dba&@'localhost&
六、查看 MySQL 用户权限
查看当前用户(自己)权限:
查看其他 MySQL 用户权限:
show grants for&;
七、撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 &to& 换成 &from& 即可:
grant all on *.* to&&&;revoke all on *.* from&;
八、MySQL grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 &grant option&
grant select on testdb.* to&&
这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。
Category: PostYou can follow any responses to this entry via RSS.Comments are currently closed, but you can trackback from your own site.
=========================================================================
1.创建用户并授权
grant语句的语法:
&&&&grant privileges (columns) on what to user identified by "password" with grant option 要使用该句型,需确定字段有:
privileges 权限指定符权限允许的操作&&&&alter 修改表和索引&&&&create 创建数据库和表&&&&delete 删除表中已有的记录&&&&drop 抛弃(删除)数据库和表&&&&index 创建或抛弃索引&&&&insert 向表中插入新行&&&&reference 未用&&&&select 检索表中的记录&&&&update 修改现存表记录&&&&file 读或写服务器上的文件&&&&process 查看服务器中执行的线程信息或杀死线程&&&&reload 重载授权表或清空日志、主机缓存或表缓存。&&&&shutdown 关闭服务器&&&&all 所有;all privileges同义词&&&&usage 特殊的&无权限&权限
以上权限分三组:
&&&&&第一组:适用于数据库、表和列如:alter create delete drop index insert select update
&&&&&第二组:数管理权限 它们允许用户影响服务器的操作 需严格地授权 如:file process reload shut*
&&&&&第三组:权限特殊 all意味着&所有权限& uasge意味着无权限,即创建用户,但不授予权限
  权限运用的列(可选)并且你只能设置列特定的权限。如果命令有多于一个列,应该用逗号分开它们。
  权限运用的级别。权限可以是全局,定数据库或特定表.
  权限授予的用户,由一个用户名和主机名组成,许两个同名用户从不同地方连接.缺省:mysql用户password
  赋予用户的口令(可选),如果你对用户没有指定identified by子句,该用户口令不变.
&&&&用identified by时,口令字符串用改用口令的字面含义,grant将为你编码口令.
&&&&&&注:set password使用password()函数with grant option
&&&&用户可以授予权限通过grant语句授权给其它用户(可选)
&&&&grant all on db_book.* to&&identified by "yeelion" 只能在本地连接
&&&&grant all on db_book.* to&&identified by "yeeliong" 允许从此域连接
&&&&grant all on db_book.* to&&identified by "yeelion" 允许从任何主机连接
&&&&&&注:"%"字符起通配符作用,与like模式匹配的含义相同。
&&&&grant all on db_book.* to&&identified by "yeelion";
&&&&&&允许huaying从域的任何主机连接
&&&&grant all on db_book.* to&&identified by "yeelion"
&&&&grant all on db_book.* to&&identified by "yeelion"
&&&&grant all on db_book.* to&&identified by "yeelion"
&&&&&&允许从单IP 段IP或一子网IP登陆
&&&&&&注:有时 用户@IP 需用引号 如""
&&&&grant all on *.* to&&identified by "yeelion" with grant option
&&&&&&添加超级用户huaying 可在本地登陆做任何操作.
&&&&grant reload on *.* to&&identified by "yeelion" 只赋予reload权限
&&&&grant all on db_book to&&indetified by "yeelion" 所有权限
&&&&grant select on db_book to&&indetified by "yeelion" 只读权限
&&&&grant select,insert,delete,update on db_book to&&indetified by "yeelion"
&&&&&&只有select,insert,delete,update的权限
&&&&grant select on db_book.storybook to&&indetified by "yeelion" 只对表
&&&&grant update (name) on db_book.storybook to&&只对表的name列 密码不变
&&&&grant update (id,name,author) on db_book.storybook to&&只对表的多列
&&&&grant all on book.* to ""@ 允许域中的所有用户使用库book
&&&&grant all on book.* to&&indetified by "yeelion" with grant option
&&&&&&允许huaying对库book所有表的管理员授权.
2.撤权并删除用户
revoke的语法类似于grant语句
&&&&to用from取代,没有indetifed by和with grant option子句. 如下:
&&&&revoke privileges (columns) on what from user
&&&&user:必须匹配原来grant语句的你想撤权的用户的user部分。
&&&&privileges:不需匹配,可以用grant语句授权,然后用revoke语句只撤销部分权限。
&&&&revoke语句只删权限不删用户,撤销了所有权限后user表中用户记录保留,用户仍然可以连接服务器.
&&&&要完全删除一个用户必须用一条delete语句明确从user表中删除用户记录:
&&&&&&delete from user where user="huaying"
&&&&&& 重载授权表
&&&&&&&&注:使用grant和revoke语句时,表自动重载,而你直接修改授权表时不是.
阅读(...) 评论()2012年1月 挨踢职涯大版内专家分月排行榜第二2011年11月 挨踢职涯大版内专家分月排行榜第二2011年10月 挨踢职涯大版内专家分月排行榜第二2011年8月 挨踢职涯大版内专家分月排行榜第二
2012年4月 挨踢职涯大版内专家分月排行榜第三2011年12月 挨踢职涯大版内专家分月排行榜第三2011年9月 挨踢职涯大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。我处理的方法是,找到指定目录下的数据库的这2个文件,设置evvryone有全部权利,附加成功后,系统会自动调整权限,改为sql管理员有权限,不用手工再调整回来。
后面是网上文摘
去网上搜索了一下答案,最终还是发现是NTFS的权限问题,NTFS格式对权限的设置选项多了很多,但因此也带来了不少问题,IIS,SQL等等的一些莫名其妙的问题可能就源于权限未分配,这次的问题同样出在此处。
解决方法很简单:把文件所在的文件夹的&完全控制&权限赋予 users或者你所操作数据库的那个用户即可解决问题。如果属性里面没有Users用户,手动添加一个即可。
附上网上的解决方法:
经查阅资料,发现并不是文件只读的问题,严格说应该是一个&权限&的问题,当前的SQL Server登录帐号没有对要附加文件的可写权限,就会出现上述&只读&的提示,解决办法有以下几种:
1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;
2.在登录验证时,选择&Windows身份验证&,而不是&SQL Server身份验证&,即便你的登录帐号是sa;
3.如果一定要使用&SQL Server 身份验证&,请更改登录帐号的权限使其对要附加文件有完全操作权限;
4.将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service;
没办法,只能退一步,修改config中的连接字符串,改为windows身份验证,再用windows身份验证附加数据库了。
今天在将一个 SQL Server 2000 数据库附加到 SQL Server 2005时出现如下的错误:附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库test,因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)查看了数据库文件,他们并没有只读属性,在 SQL Server 2000 中附加都是一切正常的啊。经查阅资料,发现并不是文件只读的问题,严格说应该是一个&权限&的问题,当前的SQL Server登录帐号没有对要附加文件的可写权限,就会出现上述&只读&的提示,解决办法有以下几种:1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功; 2.在登录验证时,选择&Windows身份验证&,而不是&SQL Server身份验证&,即便你的登录帐号是sa; 3.如果一定要使用&SQL Server 身份验证&,请更改登录帐号的权限使其对要附加文件有完全操作权限;
4.将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service;
我遇到了这种情况,使用第二种方法解决了问题。
本文已收录于以下专栏:
相关文章推荐
1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;
2.在登录验证时,选择“Windows身份验证”,而不是“SQL Server身份验证”,即便你的登...
SQL Server 2008,使用“SQL Server身份验证”方式登录,附加数据库时提示:
无法升级数据库 'XXX',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行...
无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
...
“无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539) “解决方案
无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
...
--查看当前的存放位置
select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master...
Windows下安装多个Apache服务               
标签:Apache
安装好Ap...
http://blog.csdn.net/wyzsc/article/details/6130800
我处理的方法是,找到指定目录下的数据库的这2个文件,设置evvryone有全部权利,附加...
最近在熬夜做项目,所以总是在公司做完,回来在写一部份,从公司数据库上分离的数据库附加到家里的SQL Server时发现数据库不管怎么附加都是只读的.
今天终于解决了
问题出在用户权限上.
他的最新文章
讲师:钟钦成
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 mysql 只读权限 的文章

 

随机推荐