100分,SQL2005数据库角色权限问题!
来源:互联网 发布:java字符串去掉汉字 编辑:程序博客网 时间:2024/05/03 02:23
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
- 100分,SQL2005数据库角色权限问题!
- sql2005中数据库角色
- sql2005中数据库角色
- 生成数据库角色权限
- 数据库角色权限
- POSTGRESQL 数据库 角色 权限
- 数据库角色权限设计
- MS SQL2005问题: 用户、组或角色 '*****' 在当前数据库中已存在
- 数据库角色、数据库用户、权限
- SQL2005附加数据库问题
- 数据库权限和角色模型
- 数据库权限和角色模型 .
- 数据库权限和角色模型
- 用户、角色、权限数据库设计
- 用户、角色、权限数据库设计
- 数据库 权限设计 角色 用户组
- PostgreSQL数据库角色和权限
- 用户角色、权限的问题
- 单词可以这样背吗?
- 几个面试.net C#的题目
- 病毒攻击与防治专题之 --IPC连接 手工种植木马 清除与防范
- 动态规划1(老师的讲义,我拷下来的呵呵)
- C#的题目
- 100分,SQL2005数据库角色权限问题!
- 如何去写一个.Net程序
- DirectX中的纹理映射相关技术
- 《Effective C#》Item 1:用属性来访问类的私有成员
- DirectX中的多重纹理相关技术
- Discuz论坛短信群发、动网自动发贴源代码
- 动态规划2
- DirectX中的坐标转换相关技术
- 雅思考试流程与应试注意事项