Попробуйте создать базу данных с помощью PowerDesigner. При разработке таблицы (Физическая модель данных, PDM) есть имя столбца и код столбца. Введите имя столбца с именем для чтения поля, но для кода столбца введите с именем нечитаемого поля.
Например, чтобы создать EMPLOYEE (скрыто в table_1) со столбцами:
NAME CODE DATA TYPE
ID F1 INTEGER
NAME F2 VARCHAR(50)
DOB F3 DATE
Тем временем в SQLServer создайте таблицу как обычно (скрипт можно получить из меню «Создать базу данных»)
CREATE TABLE table_1(
f1 int,
f2 varchar(50),
f3 date);
и создать вид
CREATE VIEW EMPLOYEE WITH ENCRYPTION
AS
SELECT f1 ID,f2 NAME ,f3 DOB
FROM table_1
предложение WITH ENCRYPTION не позволяет пользователю просматривать оператор sql для создания представления.
В коде приложения используйте представление EMPLOYEE вместо table_1
Пример:
insert into EMPLOYEE values('1','kevin','1972/11/24');
insert into EMPLOYEE values('2','ted sulivan','1969/06/12');
insert into EMPLOYEE values('3','wei meng lee','1974/04/17');
SELECT * FROM EMPLOYEE;
и объединить его с шифрованием данных (см .: http://blog.sqlauthority.com/2009/04/28/sql-server-introduction-to-sql-server-encryption-and-symmetric-key-encryption-tutorial-with-script/)
Конечно, с помощью этого метода пользователь все еще может гостевую таблицу из представления, но пользователь не может получить взаимосвязь таблицы с Первичным ключом и внешним ключом, представление не имеет реляционной информации.
Но если вы полностью запутываете этот процесс, вообще не используя view, вы должны закодировать с табличной информацией, полученной из PDM.
Надеюсь, что это может помочь вам. Поскольку у меня та же проблема с вами, когда база данных подключена к машине с учетной записью администратора, база данных предоставляется пользователю.