Несмотря на уже отмеченные проблемы проектирования в отношении безопасности, если параметры сортировки по умолчанию для вашего экземпляра SQL Server нечувствительны к регистру, вам необходимо выбрать подходящие параметры сортировки. Параметры сортировки по умолчанию для установки SQL Server [обычно, в зависимости от языкового стандарта сервера] SQL_Latin1_General_Cp1_CI_AS
, что означает кодовую страницу Latin-1, без учета регистра и с учетом диакритических знаков.
При создании базы данных вы можете указать параметры сортировки по умолчанию для этой базы данных. И когда вы создаете таблицу, вы можете указать сопоставление, которое будет использоваться для каждого столбца char
, varchar
, nchar
или nvarchar
.
Вы также можете изменить их с помощью соответствующих операторов DDL. Обратите внимание, что изменение сопоставления может повлиять на целостность данных, что приведет к нарушению таких вещей, как первичные ключи и уникальные индексы.
Создать таблицу с указанием параметров сортировки для ее столбцов очень просто:
create table account
(
id int not null identity(1,1) primary key clustered ,
user_id varchar(32) collate SQL_Latin1_General_Cp1_CS_AS not null unique ,
password varchar(32) collate SQL_Latin1_General_Cp1_CS_AS not null unique ,
...
)
Вы также можете использовать alter table
и alter database
, чтобы изменить сопоставления.
Поддерживаемые параметры сортировки можно найти на странице http://technet.microsoft.com/en-us/library/ms180175.aspx и http://technet.microsoft.com/en-us/library/ms188046.aspx
Вам следует
- Обратите внимание, что смешанные сопоставления могут вызвать проблемы при сравнении двух столбцов и
- Обратите внимание на проблемы безопасности, поднятые другими.
person
Nicholas Carey
schedule
12.11.2013
SqlCommand
имеет уязвимость SQL-инъекции < / а>. Кажется, вы тоже храните свои пароли в виде обычного текста, что не годится. - person DGibbs   schedule 12.11.2013