如何对整个数据库加密?
想不让用户看到我的数据库结构,怎么样进行加密,不让其知道我的表结构,视图、存储过程。不知道这个怎么做啊?请各位高手指教啊? 问题点数:0、回复次数:6Top
1 楼letsflytogether(伍子)回复于 2003-11-04 08:23:25 得分 0
视图和存储过程可以通过with encryption选项
而表结构,则只能通过权限来管理了
G. 使用 WITH ENCRYPTION 选项
WITH ENCRYPTION 子句对用户隐藏存储过程的文本。下例创建加密过程,使用 sp_helptext 系统存储过程获取关于加密过程的信息,然后尝试直接从 syscomments 表中获取关于该过程的信息。
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'encrypt_this' AND type = 'P')
DROP PROCEDURE encrypt_this
GO
USE pubs
GO
CREATE PROCEDURE encrypt_this
WITH ENCRYPTION
AS
SELECT *
FROM authors
GO
EXEC sp_helptext encrypt_this
下面是结果集:
The object's comments have been encrypted.
接下来,选择加密存储过程内容的标识号和文本。
SELECT c.id, c.text
FROM syscomments c INNER JOIN sysobjects o
ON c.id = o.id
WHERE o.name = 'encrypt_this'
下面是结果集:
Top
2 楼dragoner()回复于 2003-11-04 08:33:20 得分 0
视图怎么加密呢?Top
3 楼zarge(鲨去来兮)回复于 2003-11-04 08:35:41 得分 0
差不多,也是用with encryption选项,如
CREATE VIEW accounts (title, advance, amt_due)
WITH ENCRYPTION
AS
SELECT title, advance, price * royalty * ytd_sales
FROM titles
WHERE price > $5
GO
Top
4 楼zjcxc(邹建)回复于 2003-11-04 09:40:09 得分 0
with encryption
可以对存储过程/自定义函数/触发器/视图加密.
--创建加密的存储过程(对现有的存储过程的话,将create 改为 alter,以下相同)
create proc p_test
with encryption
...
--函数
create function f_test()
with encryption
as
....
--触发器
create trigger t_test on 表
with encryption
for insert
as
....
--视图
create view v_test
with encryption
as
....Top
5 楼lynx1111(任我行:一个PLMM看着就兴奋的男人)回复于 2003-11-04 10:03:09 得分 0
设置权限Top
6 楼venket(创业先锋)回复于 2003-11-05 08:20:52 得分 0
在后面加一个 with password =""
Top




