SQL sqlserver导出数据库 数据库权限的管理问题

&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!由于文件权限问题导致SQL Server 2008 无法正常启动解决_数据库技术_Linux公社-Linux系统门户网站
你好,游客
由于文件权限问题导致SQL Server 2008 无法正常启动解决
来源:Linux社区&
作者:cyq1984
项目中使用MS SQL Server 2008作为数据库服务器。操作系统为MS Windows Server 位。
在服务器安装完成之后,就一直没有重启过机器,今天对数据库做了一些简单调整,主要是想要通过DAC连接到数据库,由于几次操作不成功,因此,想重启下服务器。
结果重启之后悲剧了,MSSQLSERVER直接无法启动。
查看系统日志,发现以下错误信息:
FCB::Open failed: 无法打开文件号 2 的文件 D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf。操作系统错误: 5(拒绝访问。)。&
竟然是拒绝访问,master数据库的ldf紧接着下一条是类似的内容,只不过是mater数据库的mdf文件。
这是咋回事呢?
看样子是文件权限的问题,SQL Server在创建完数据库以后,会使用一个名为“SQLServer*******”的文件用户,而在win2008下,此用户对于管理员的master.mdf与mastlog.ldf文件是只读权限,因此,在服务启动的时候,就会导致SQL Server无法正常启动。看样子SQL Server会对master数据库的一些内容进行写操作。找到问题根源,解决就很简单,只需要把这两个文件的民为“SQLServer*******”的文件用户权限做一下调整,当然,这个调整是需要管理员权限。
再启动SQL Server,正常!
相关资讯 & & &
& (02/21/:35)
& (11/11/:28)
& (02/22/:52)
& (11/25/:35)
& (09/22/:31)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款有关用户角色和权限的管理配置问题
在实际的生产用户过程中,角色的应用很广泛,那么到底什么是角色呢?
角色是一组权限的集合,可以授权给用户或角色,用于控制用户对对象的访问和行为。
创建用户的时候,你是否为了贪图方便直接授权DBA角色给它呢?其实这是种非常有风险的行为。
下面你可以思考两个问题:
1. connect,resource角色包含哪些权限?
2. 如何查询用户具有哪些角色?
connect,resource角色包含哪些权限?
可以通过DBA_SYS_PRIVES视图来查询
可见,我们将connect,resource角色授于用户就能满足一般用户的需要了。
因此,我们也可以很方便地根据PRIVILEGE字段来查询某些具体的权限,再根据对应角色授权给用户,做好权限控制。
SQL& select * from dba_sys_privs where GRANTEE = 'DBA';
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
DBA CHANGE NOTIFICATION YES
DBA ADMINISTER ANY SQL TUNING SET YES
DBA ALTER ANY SQL PROFILE YES
DBA CREATE RULE YES
DBA EXPORT FULL DATABASE YES
DBA EXECUTE ANY EVALUATION CONTEXT YES
DBA DEQUEUE ANY QUEUE YES
DBA DROP ANY INDEXTYPE YES
DBA ALTER ANY INDEXTYPE YES
DBA EXECUTE ANY LIBRARY YES
DBA CREATE ANY LIBRARY YES
DBA CREATE ANY DIRECTORY YES
DBA ALTER PROFILE YES
DBA EXECUTE ANY PROCEDURE YES
DBA CREATE ROLE YES
DBA SELECT ANY SEQUENCE YES
DBA DROP ANY INDEX YES
DBA UPDATE ANY TABLE YES
DBA INSERT ANY TABLE YES
DBA SELECT ANY TABLE YES
DBA DROP ROLLBACK SEGMENT YES
DBA BECOME USER YES
DBA DROP TABLESPACE YES
DBA ALTER SESSION YES
DBA CREATE SESSION YES
DBA ANALYZE ANY DICTIONARY YES
DBA ALTER ANY RULE SET YES
DBA CREATE RULE SET YES
DBA DEBUG ANY PROCEDURE YES
DBA CREATE DIMENSION YES
DBA ALTER ANY LIBRARY YES
DBA UNDER ANY TYPE YES
DBA DROP ANY MATERIALIZED VIEW YES
DBA DROP ANY TRIGGER YES
DBA ALTER ANY PROCEDURE YES
DBA FORCE ANY TRANSACTION YES
DBA ALTER DATABASE YES
DBA DELETE ANY TABLE YES
DBA ALTER ROLLBACK SEGMENT YES
DBA EXECUTE ANY PROGRAM YES
DBA EXECUTE ANY RULE YES
DBA IMPORT FULL DATABASE YES
DBA EXECUTE ANY RULE SET YES
DBA CREATE ANY RULE SET YES
DBA FLASHBACK ANY TABLE YES
DBA RESUMABLE YES
DBA ADMINISTER DATABASE TRIGGER YES
DBA CREATE ANY OUTLINE YES
DBA ALTER ANY DIMENSION YES
DBA CREATE ANY DIMENSION YES
DBA EXECUTE ANY OPERATOR YES
DBA CREATE TYPE YES
DBA CREATE TRIGGER YES
DBA GRANT ANY ROLE YES
DBA DROP ANY VIEW YES
DBA CREATE VIEW YES
DBA LOCK ANY TABLE YES
DBA ALTER USER YES
DBA CREATE USER YES
DBA ALTER TABLESPACE YES
DBA CREATE TABLESPACE YES
DBA RESTRICTED SESSION YES
DBA CREATE ANY JOB YES
DBA CREATE JOB YES
DBA CREATE ANY RULE YES
DBA DROP ANY EVALUATION CONTEXT YES
DBA CREATE ANY EVALUATION CONTEXT YES
DBA CREATE EVALUATION CONTEXT YES
DBA GRANT ANY OBJECT PRIVILEGE YES
DBA SELECT ANY DICTIONARY YES
DBA DROP ANY DIMENSION YES
DBA UNDER ANY TABLE YES
DBA CREATE INDEXTYPE YES
DBA CREATE ANY OPERATOR YES
DBA DROP ANY LIBRARY YES
DBA ANALYZE ANY YES
DBA ALTER ANY ROLE YES
DBA CREATE ANY SEQUENCE YES
DBA CREATE ANY INDEX YES
DBA CREATE ANY TABLE YES
DBA MANAGE FILE GROUP YES
DBA MANAGE SCHEDULER YES
DBA ADMINISTER RESOURCE MANAGER YES
DBA ALTER ANY OUTLINE YES
DBA DROP ANY CONTEXT YES
DBA EXECUTE ANY INDEXTYPE YES
DBA UNDER ANY VIEW YES
DBA DROP ANY TYPE YES
DBA ALTER ANY TYPE YES
DBA ALTER ANY MATERIALIZED VIEW YES
DBA CREATE PROFILE YES
DBA DROP PUBLIC DATABASE LINK YES
DBA ALTER ANY INDEX YES
DBA CREATE CLUSTER YES
DBA COMMENT ANY TABLE YES
DBA DROP ANY TABLE YES
DBA CREATE ROLLBACK SEGMENT YES
DBA AUDIT SYSTEM YES
DBA ALTER SYSTEM YES
DBA MANAGE ANY FILE GROUP YES
DBA EXECUTE ANY CLASS YES
DBA DROP ANY RULE SET YES
DBA DEBUG CONNECT SESSION YES
DBA ON COMMIT REFRESH YES
DBA ENQUEUE ANY QUEUE YES
DBA CREATE ANY INDEXTYPE YES
DBA CREATE ANY TYPE YES
DBA DROP ANY DIRECTORY YES
DBA ALTER RESOURCE COST YES
DBA CREATE ANY PROCEDURE YES
DBA CREATE PROCEDURE YES
DBA FORCE TRANSACTION YES
DBA ALTER ANY SEQUENCE YES
DBA CREATE SEQUENCE YES
DBA CREATE ANY VIEW YES
DBA DROP PUBLIC SYNONYM YES
DBA DROP ANY SYNONYM YES
DBA CREATE ANY CLUSTER YES
DBA BACKUP ANY TABLE YES
DBA CREATE TABLE YES
DBA ADMINISTER SQL TUNING SET YES
DBA MERGE ANY VIEW YES
DBA DROP ANY OUTLINE YES
DBA CREATE OPERATOR YES
DBA CREATE LIBRARY YES
DBA GRANT ANY PRIVILEGE YES
DBA DROP PROFILE YES
DBA ALTER ANY TRIGGER YES
DBA CREATE ANY TRIGGER YES
DBA DROP ANY PROCEDURE YES
DBA AUDIT ANY YES
DBA DROP ANY ROLE YES
DBA DROP ANY SEQUENCE YES
DBA CREATE PUBLIC SYNONYM YES
DBA CREATE SYNONYM YES
DBA DROP ANY CLUSTER YES
DBA ALTER ANY TABLE YES
DBA CREATE EXTERNAL JOB YES
DBA READ ANY FILE GROUP YES
DBA CREATE ANY SQL PROFILE YES
DBA DROP ANY SQL PROFILE YES
DBA SELECT ANY TRANSACTION YES
DBA ADVISOR YES
DBA DROP ANY RULE YES
DBA ALTER ANY RULE YES
DBA ALTER ANY EVALUATION CONTEXT YES
DBA CREATE ANY CONTEXT YES
DBA MANAGE ANY QUEUE YES
DBA GLOBAL QUERY REWRITE YES
DBA QUERY REWRITE YES
DBA DROP ANY OPERATOR YES
DBA EXECUTE ANY TYPE YES
DBA CREATE ANY MATERIALIZED VIEW YES
DBA CREATE MATERIALIZED VIEW YES
DBA CREATE PUBLIC DATABASE LINK YES
DBA CREATE DATABASE LINK YES
DBA CREATE ANY SYNONYM YES
DBA ALTER ANY CLUSTER YES
DBA DROP USER YES
DBA MANAGE TABLESPACE YES
160 rows selected.
这足以说明DBA角色的权限非常大了,因此不要轻易将DBA角色授权给管理员以外的用户。
如何查询用户具有哪些角色?
可以通过DBA_ROLE_PRIVS视图来查询
SQL& create user t1 account unlock identified by t1;
User created.
SQL& create user t2 account unlock identified by t2;
User created.
SQL& grant connect,resource to t2;
Grant succeeded.
SQL& grant dba to t1;
Grant succeeded.
下面,通过简单的实例说明权限控制:
T1用户拥有DBA角色,T2用户只有最基本的角色,现将实现T2用户对T1的所有表只读权限:
SQL& connect t1/t1
Connected.
SQL& create table t1(id number);
Table created.
SQL& grant SELECT ANY table to t2;
Grant succeeded.
SQL& connect t2/t2
Connected.
SQL& select * from t1.t1;
no rows selected
SQL& drop table t1.t1;
drop table t1.t1
ERROR at line 1:
ORA-01031: insufficient privileges
SQL& delete from t1.t1;
delete from t1.t1
ERROR at line 1:
ORA-01031: insufficient privileges
如果你的其他想实现的权限,可以通过DBA_SYS_PRIVS.PRIVILEGE字段来对应授权。
因此,如果你担心生产用户的表或存储过程或序列号等被其他用户恶意修改,你可以创建一个单独的查询用户,将生产用户的表、存储过程、序列号的只读权限赋予它,而后都通过查询用户来查询。这样就大大降低了生产的风险。
-------------------------------------------------------------------------------------------------
本文来自于我的技术博客 http://blog.csdn.net/robo23
转载请标注源文链接,否则追究法律责任!
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'您所在的位置: &
SQL Server 2005数据库用户权限管理的设置
SQL Server 2005数据库用户权限管理的设置
在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限。在SQL Server 2005数据库中,要想控制某个用户访问数据库的权限,只需要进行简单的设置即可实现。本文介绍了这一过程的设置,希望会对读者有所帮助。
SQL Server 2005数据库中,我们可以设置每个用户对应的权限,以提高数据库的安全性。这类用户权限设置的应用非常广泛。比如设置某个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限等等。其实这一设置过程是很简单的,接下来就让我们来一起学习吧。
&一、操作步骤
1. 首先进入数据库级别的【安全性】-【登录名】-【新建登录名】
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="269" height="160" src="/files/uploadimg/7040.jpg" />
(图1:新建登录名)
2. 在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="376" height="496" src="/files/uploadimg/7041.jpg" />
(图2:设置选项)
3. 在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的操作
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="570" height="96" src="/files/uploadimg/7042.jpg" />
(图3:选择对应数据库)
4. 现在我们就可以对TestLog数据库中的User表进行权限的设置了,【表】-【 属性】
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="255" height="292" src="/files/uploadimg/7043.jpg" />
(图4:选择对应表)
5. 在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="585" height="252" src="/files/uploadimg/7044.jpg" />
(图5:设置访问表的用户)
6. 在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="560" height="268" src="/files/uploadimg/7045.jpg" />
(图6:权限列表)
7. 现在就使用TestUser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="265" height="176" src="/files/uploadimg/7046.jpg" />
(图7:效果)
二、注意事项
1. 在上面的第3步骤中需要注意:如果这里没有选择对应的数据库的话,之后去TestLog数据库中是找不到TestUser。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="560" height="103" src="/files/uploadimg/7047.jpg" />
(图8:找不到TestUser用户)
2. 在上面的第3步骤,设置完TestLog数据后,需要点击【确认】按钮,完成创建用户操作,如果这个时候去设置【安全对象】,是无法在【添加】-【特定对象】-【对象类型】-【登陆名】-【浏览】中找到刚刚新建的TestUser用户的。
3. 其实在数据库级别的【安全性】创建的用户是属于全局的,当设置了某个数据库,比如TestLog之后,这个用户就会出现在这个数据库的【安全性】列表中。如果删除TestLog这个用户,会出现下面的提示。删除了后,这个用户就无法登陆了。需要去对应的数据库中删除用户,如果没有删除又创建,是会报错的。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="560" height="136" src="/files/uploadimg/7048.jpg" />
(图9:删除TestUser用户)
4. 在第6步的【显式权限】列表中,如果选择了【Control】这个选项,那么在【Select】中设置查询【列权限】就没有意义了,查询就不会受限制了。如果设置【列权限】,在正常情况下会显示下图的报错信息:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="560" height="136" src="/files/uploadimg/7049.jpg" />
(图10:效果)
5. 在TestLog数据库的【安全性】-【TestUser】-【属性】-【安全对象】-【添加】-【对象类型】这里有更多关于数据库级别的一些对象类型可以设置。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="SQL Server 2005数据库用户权限管理的设置" width="408" height="349" src="/files/uploadimg/70410.jpg" />
(图11:其它对象类型)
关于SQL Server 2005数据库用户权限设置就介绍到这里,如果想了解更多SQL Server数据库的知识,这里的文章很有用:,千万不要错过哦!
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
MariaDB是一个向后兼容、替代MySQL的数据库服务器。它包含所有主
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
MariaDB是一个向后兼容、替代MySQL的数据库服务器。它
暮春三月,京师草长,杂花生树,群莺乱飞。ChinaHadoo
MySQL 5.6.10已经发布,Oracle将其称之为MySQL 5.6正
本书在全面介绍微软最新网络操作系统Windows Server 2003的基础上,简要地介绍了UNIX和Linux两大操作系统的代表产品:Sun(太阳
51CTO旗下网站

我要回帖

更多关于 连接sql server数据库 的文章

 

随机推荐