100分,SQL2005数据库角色权限问题!

转载 2006年06月04日 17:41:00

100分,SQL2005数据库角色权限问题! 
作  者:  triffang (冲凉不除3) 
等  级:   
信 誉 值:  100 
所属社区:  MS-SQL Server 基础类 
问题点数:  100 
回复次数:  17 
发表时间:  2006-6-2 18:42:05 
  
 
  

我建了个登陆名,命名为user。指定的数据库是DEMO,设置了角色bulkadmin.
因为我之前是用sa的,所以user登陆时就看不到sa建的表了。
其实我的意图是想:建个没有备份数据库,分离数据库权限的用户。但又能查看到原来sa建的表!

 
  triffang(冲凉不除3) ( ) 信誉:100  2006-6-2 18:47:33  得分: 0 
 
 
  
是这样子的,一个团队开发,用的都是同一个数据库。放在服务器上。但我不想人家能备份,能分离这数据库,只是给他用,只建表,修改表,存储过程等等。
那这个登陆名的权限要怎么设呢》

 
 
Top 
 zjcxc(邹建) ( ) 信誉:673  2006-6-2 19:53:45  得分: 0 
 
 
  
除非你把操作系统的权限也接管过来, 否则是控制不到的

 
 
Top 
 triffang(冲凉不除3) ( ) 信誉:100  2006-6-2 20:18:57  得分: 0 
 
 
  
把操作系统的权限也接管过来是什么意思?

 
 
Top 
 zjcxc(邹建) ( ) 信誉:673  2006-6-2 20:21:44  得分: 0 
 
 
  
好像理解得有些问题, 楼主主要是想控制某个sql登录不具有备份/分离数据库和权限?

 
 
Top 
 triffang(冲凉不除3) ( ) 信誉:100  2006-6-2 20:24:48  得分: 0 
 
 
  
是啊

 
 
Top 
 triffang(冲凉不除3) ( ) 信誉:100  2006-6-2 20:28:23  得分: 0 
 
 
  
老大,你的邮箱是多少啊。能跟你交流下吗?

 
 
Top 
 zjcxc(邹建) ( ) 信誉:673  2006-6-2 20:40:50  得分: 0 
 
 
  
-- 那你不给他相应的权限就成了

-- 示例如下:


-- 创建测试库
CREATE DATABASE test
GO

-- 创建测试表
USE test
GO

CREATE TABLE dbo.tb(id int)
GO

-- 创建登录
CREATE LOGIN [test]
WITH PASSWORD = '[test]1234',
DEFAULT_DATABASE = test

-- 权限分配
EXEC sp_grantdbaccess 'test'
EXEC sp_addrolemember N'db_datareader', N'test'
EXEC sp_addrolemember N'db_ddladmin', N'test'
EXEC sp_addrolemember N'db_accessadmin', N'test'
EXEC sp_addrolemember N'db_datawriter', N'test'
GO

-- 模拟新建用户的权限
SETUSER 'test'
GO

-- 查询 sa 建立的表
SELECT * FROM dbo.tb
GO

-- 备份数据库
BACKUP DATABASE test TO DISK = 'C:/test.bak'
GO

-- 分离数据库
EXEC sp_detach_db 'test'
GO

-- 恢复sa
SETUSER
GO

-- 删除测试
USE master
DROP LOGIN test
DROP DATABASE test

 
 
Top 
 gaojier1000(青岛※高捷) ( ) 信誉:100  2006-6-3 8:46:09  得分: 0 
 
 
  
标记,个人精华贴。

 
 
Top 
 triffang(冲凉不除3) ( ) 信誉:100  2006-6-3 9:08:43  得分: 0 
 
 
  
这不行,赋予了这四种权限之后。
db_datareader'
db_ddladmin'
db_accessadmin'
db_datawriter'
没有修改表的权限啊。
我的本意是,他能对表,存储过程,视图增删该查。
但不能备份数据库和分离数据库,不能分配权限

 
 
Top 
 triffang(冲凉不除3) ( ) 信誉:100  2006-6-3 19:55:09  得分: 0 
 
 
  
顶一下

 
 
Top 
 zjcxc(邹建) ( ) 信誉:673  2006-6-3 21:06:17  得分: 0 
 
 
  
-- 楼主没有测试?  你运行下面的脚本, 看看能否有DDL的权限

 

-- 那你不给他相应的权限就成了

-- 示例如下:


-- 创建测试库
CREATE DATABASE test
GO

-- 创建测试表
USE test
GO

CREATE TABLE dbo.tb(id int)
GO

-- 创建登录
CREATE LOGIN [test]
WITH PASSWORD = '[test]1234',
DEFAULT_DATABASE = test

-- 权限分配
EXEC sp_grantdbaccess 'test'
EXEC sp_addrolemember N'db_datareader', N'test'
EXEC sp_addrolemember N'db_ddladmin', N'test'
EXEC sp_addrolemember N'db_accessadmin', N'test'
EXEC sp_addrolemember N'db_datawriter', N'test'
GO

-- 模拟新建用户的权限
SETUSER 'test'
GO

-- 查询 sa 建立的表
SELECT * FROM dbo.tb
GO

-- 创建表
CREATE TABLE dbo.tb1(id int)
-- 修改表
ALTER TABLE dbo.tb ADD test int
GO

-- 创建存储过程
CREATE PROC p
AS
SELECT 1
GO

-- 修改存储过程
ALTER PROC P
AS
SELECT 2
GO

-- 调用存储过程
EXEC P
GO
-- 备份数据库
BACKUP DATABASE test TO DISK = 'C:/test.bak'
GO

-- 分离数据库
EXEC sp_detach_db 'test'
GO

-- 恢复sa
SETUSER
GO

-- 删除测试
USE master
DROP LOGIN test
DROP DATABASE test

 

 
 
Top 
 zjcxc(邹建) ( ) 信誉:673  2006-6-3 21:07:18  得分: 0 
 
 
  
db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令

DDL命令自然包括CREATE TABLE/PROC 这类建立对象的, 也包含ALTER 这类修改的, 怎么会不能建立表/修改表等?

 
 
Top 
 triffang(冲凉不除3) ( ) 信誉:100  2006-6-3 22:15:57  得分: 0 
 
 
  
哦,你这样的话,好象在企业管理器里不能操作,语句能执行。

 
 
Top 
 oasis_wen(活着) ( ) 信誉:100  2006-6-3 22:23:50  得分: 0 
 
 
  
标记一下

 
 
Top 
 zjcxc(邹建) ( ) 信誉:673  2006-6-4 9:29:41  得分: 0 
 
 
  
企业管理器? sql 2005是manger studio啊, 右键用户的属性--设置数据库角色为我上面列出的几种就行了.

 
 
Top 
 TERRYYRRET(命运) ( ) 信誉:100  2006-6-4 10:51:15  得分: 0 
 
 
  
学习

 
 
Top 
 triffang(冲凉不除3) ( ) 信誉:100  2006-06-04 17:05:00  得分: 0 
 
 
   我明白的。
我上面的意思是说在manger studio管理界面选择一个表进去时不能修改。只能通过SQL语句修改。!
但能新增。

谢谢你了,老大!
 
 
Top 

用户、角色和权限关系

一.引言        因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。        权限系统一直以来是我们应用系统不可缺少的...
  • A123638
  • A123638
  • 2015年12月21日 21:13
  • 9270

Oracle数据库(权限、用户、角色、基本知识介绍)

oracle(权限/用户/角色)
  • u013412772
  • u013412772
  • 2016年10月04日 11:12
  • 7547

数据库权限和角色模型 .

管理域 系统安全模型设计 1       修改历史 版本 修改历史  作者 描述 开发时间(h) 0.1 ...
  • hjxgood
  • hjxgood
  • 2014年05月19日 17:39
  • 8846

数据库角色权限设计

在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案。   在权限系统中,功能(权限)是最小的单位,比如起草新闻、编辑新闻、审核新闻、删除新闻等,而角色是一类...
  • ycl295644
  • ycl295644
  • 2015年06月19日 11:28
  • 3508

mysql 用户角色权限表建立

建表sql [sql] view plain copy   #创建表使用的数据库   use springmvc;    #权限表    cre...
  • andybbc
  • andybbc
  • 2017年01月22日 17:01
  • 1892

用户角色权限数据库设计实例

为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。 1.1 用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码...
  • suzhouhe1991
  • suzhouhe1991
  • 2016年04月21日 23:15
  • 2971

基于角色的权限控制

基于角色的权限控制 RBAC模型的基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权。 用户(User):一个具有唯一标识符的用户,与权限相分...
  • fatshaw
  • fatshaw
  • 2017年03月31日 16:13
  • 390

数据库角色、数据库用户、权限

数据库角色 在数据库中,为便于对用户及权限进行管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。 数据库角色可以自定义      数据库角色的范围...
  • qq_26222859
  • qq_26222859
  • 2015年07月04日 21:11
  • 2343

java用户角色权限数据库设计

借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理...
  • u013923339
  • u013923339
  • 2015年11月29日 19:41
  • 2134

SQL Server中服务器角色和数据库角色权限详解

目录(?)[+] SQLServer中服务器角色和数据库角色权限详解 角色 当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个...
  • wangzhen209
  • wangzhen209
  • 2016年07月07日 17:00
  • 7045
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:100分,SQL2005数据库角色权限问题!
举报原因:
原因补充:

(最多只允许输入30个字)