数据库权限设置问题

xiaoxiaomiaowo 2006-07-05 05:05:29
在设计数据库的阶段中,1如果用户访问数据库,要怎样对不同的角色设置权限呢?
2 该怎样设置全文检索?
...全文
1288 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrbighiwf 2006-08-24
  • 打赏
  • 举报
回复
exec sp_revokedbaccess N'test'
exec sp_droplogin N'test'

这两句话中'N'表示什么含义啊,sql帮助中没有提到啊
xiaoxiaomiaowo 2006-07-06
  • 打赏
  • 举报
回复
记起来了 exec是关于存储过程的 但一直不了解
xiaoxiaomiaowo 2006-07-06
  • 打赏
  • 举报
回复
好详细啊 真的谢谢不过也惭愧里面有些地方看不懂 平时接触较多的是增修查删四种语句 !exec还看不懂是什么意思?
zjcxc 2006-07-05
  • 打赏
  • 举报
回复
全文检索配置示例:
(常见问题参考我的帖子: http://community.csdn.net/Expert/TopicView.asp?id=3295983)

--建测试库
create database test collate Latin1_General_CI_AS
go

--切换到测试库
use test
go

--创设测试表
create table tb (ID int identity not null,a nvarchar(10),b varchar(10),constraint PK_tb primary key(id))
go

--为全文索引启用数据库
exec sp_fulltext_database 'enable'

--创建一个叫My_FullDif的全文目录
exec sp_fulltext_catalog 'My_FullDir', 'create'

--为全文索引标记表
exec sp_fulltext_table 'tb','create','My_FullDir','PK_tb'

--创建全文索引
exec sp_fulltext_column 'tb','a','add',0x0804
exec sp_fulltext_column 'tb','b','add',0x0804
go

--插入数据(注意插入数据时,字段类型及N前导符对最终查询结果的影响)
insert tb select '中国营农场', '中国营农场'
union all select N'中国营农场',N'中国营农场'
union all select '中国营农场',N'中国营农场'
union all select N'中国营农场', '中国营农场'
go


--填充全文索引
exec sp_fulltext_table 'tb','start_full'

--填充全文索引后,有一定的延迟时间才会生效,所以要延时
waitfor delay '00:00:10'
go

--查询
select * from tb where contains(a,'"国营"')
select * from tb where contains(b,'"国营"')
select * from tb where contains(a,N'"国营"')
select * from tb where contains(b,N'"国营"')

select * from tb
go

--删除测试
use master
go

drop database test


/*--测试结果

ID a b
----------- ---------- ----------
4 中国营农场 ?????
2 中国营农场 ?????

(所影响的行数为 2 行)

ID a b
----------- ---------- ----------

(所影响的行数为 0 行)

ID a b
----------- ---------- ----------
4 中国营农场 ?????
2 中国营农场 ?????

(所影响的行数为 2 行)

ID a b
----------- ---------- ----------

(所影响的行数为 0 行)

--*/
zjcxc 2006-07-05
  • 打赏
  • 举报
回复
--作好SQL的安全管理
--作者:邹建


--管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)

--切换到你新增的用户要控制的数据库
use 你的库名
go

--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限

--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go

--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录


如果在企业管理器中创建的话,就用:

企业管理器--安全性--右键登录--新建登录

常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名

服务器角色项
这个里面不要选择任何东西

数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"

确定,这样建好的用户与上面语句建立的用户一样

----------------------------------------------------------------

为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:

--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'

--添加到数据库
exec sp_grantdbaccess '用户名'

--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]

--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
zlp321002 2006-07-05
  • 打赏
  • 举报
回复
--最好有DBA 来处理权限问题.因为DBA有足够的权限为不同用户处理权限和角色

--怎样设置全文检索?

它是一个配置过程,不是简单设置就可以了.或者用脚本可以实现全文检索的查询.


22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧