В SqlServer2005 можно сделать следующее:
DECLARE @Limit INT
DECLARE @Offset INT
SET @Offset = 120000
SET @Limit = 10
SELECT
*
FROM
(
SELECT
row_number()
OVER
(ORDER BY column) AS rownum, column2, column3, .... columnX
FROM
table
) AS A
WHERE
A.rownum BETWEEN (@Offset) AND (@Offset + @Limit-1)
Я думаю, что лучше всего использовать интегрированную безопасность, если это возможно, по 2 причинам ... Это самое простое решение для управления и самое простое решение для правильного решения.
Если по какой-то причине вы не можете использовать встроенную безопасность, и вам нужно использовать имя пользователя и пароль, чтобы зашифровать их, используя что-то вроде диспетчера конфигурации Enterprise Library , чтобы зашифровать разделы вашего web.config.
В последнее время я обнаружил, что полезно использовать службу единого входа Microsoft. Если вам нужно использовать аутентификацию SQL, вы можете сохранить фактические учетные данные в зашифрованной базе данных.
Есть несколько вещей, которые мы должны знать о защите строк подключения: http://msdn.microsoft.com/en-us/library/89211k9b.aspx
На мой взгляд, лучший способ их хранения (тот, который сочетает в себе гибкость и безопасность) - «Шифрование разделов файла конфигурации с использованием защищенной конфигурации»: http://msdn.microsoft.com/en-us/library/ms254494.aspx
Это будет web.config. Вы можете зашифровать строку подключения, если вас беспокоит секретность.