• Как реализовать каскадное добавление?

    rozhnev
    @rozhnev Куратор тега SQL
    Fullstack programmer, DBA, медленно, дорого
    CREATE PROCEDURE [dbo].[addTask]
      @definition varchar(1000),
      @userEmail varchar(30)
    AS
    BEGIN
      IF (@userEmail is not null)
        BEGIN
           INSERT INTO Задача(Описание) VALUES (@definition)
          
           INSERT INTO Реализация_задачи (ID_работника, ID_задачи) 
           SELECT ID_работника, SCOPE_IDENTITY() 
           FROM Работник WHERE Электронная_почта = @userEmail
        END
    END
    GO
    
    EXEC addTask @definition = 'New task', @userEmail = 'Employee@mail.com'
    GO


    https://sqlize.online/sql/mssql2017/72762ba5b14369...
    Ответ написан
    3 комментария
  • Как предоставить пользователям возможность восстановления пароля?

    Раз ты работаешь без identity и ef, то тебе нужно самостоятельно сгенерировать этот токен.

    Норм практика будет использовать тут JWT.
    Вот описание этого формата и библиотеки, которые можно будет использовать:
    https://jwt.io/
    В него следует встроить id пользователя, email на который было отправлено письмо, и время жизни, чтобы в случае изменения email или просрачивания - токен стал невалидным.

    Этот токен надо будет встроить в ссылку, которую отправишь пользователю.

    На странице сброса пароля тебе нужно будет этот токен отправить на сервер вместе с новым паролем.

    На сервере тебе надо будет проверить валидностт токена, что он не просрочен, и что почта не изменилась.
    В случае успеха - изменить пароль.

    А туториал, который ты нашла, сделан для старой версии asp net и сейчас устарел.
    Ответ написан
    2 комментария
  • Как выбирать первичные ключи в БД?

    hint000
    @hint000
    у админа три руки
    Но часто всё-таки добавляют искусственный первичный ключ "Номер". Подскажите, почему так?
    В таком простом случае - например, потому, что начинающие программисты. Им так проще. Либо увидели где-то пример и бездумно копируют.

    Хотя можно придумать пример посложнее. Пусть есть несколько филиалов и в разных филиалах отделы с одинаковыми названиями. Тогда составной ключ будет Филиал + Наименование, это уже не очень удобно и тогда появляется обоснованное желание добавить номер вместо составного ключа.
    Здесь перечисляются преимущества ("причины использования") и недостатки:
    https://ru.wikipedia.org/wiki/Суррогатный_ключ
    Причины использования:
    • Неизменность
    • Гарантированная уникальность
    • Гибкость
    • Эффективность
    • Упрощение программирования

    Недостатки:
    • Уязвимости генераторов ключей
    • Неинформативность
    • Склоняет администратора пропустить нормализацию
    • Вопросы оптимизации
    • Невольная привязка разработчика к поведению генератора ключей в конкретной СУБД

    Короче, использовать можно и нужно, если понимать, что в конкретном случае преимущества сильнее, чем недостатки. Без понимания тоже можно использовать, но будет лотерея: либо лучше, либо хуже. Потом придёт сеньор и отрефакторит.
    Ответ написан
    1 комментарий
  • Как выбирать первичные ключи в БД?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Но часто всё-таки добавляют искусственный первичный ключ "Номер".

    Основная идея первичных ключей - неизменяемость и уникальность. В качестве ключа может использоваться, например, инвентарный номер или isbn, даже если содержит буквы/символы, т.к. он физически уникален и не изменяем. С другой стороны есть очень много вещей, которые могут меняться: фио, номера телефонов, логины. И если изменить это данные, то придется изменить их и во всех таблицах, которые ссылаются на эти данные. И чтобы избежать таких ситуаций и используют искусственные ключи.
    Ответ написан
    1 комментарий
  • Какие потенциальные угрозы (атаки) существуют для ИС (сайта)?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    В первую очередь, нужно обеспечить защиту от возможности заражения ПК вирусами, установив антивирусник.

    В первую очередь нужно обеспечить установку сайта на линух, которому не нужны антивирусники, а также регулярный полный бэкап этой машины - потому что это должна быть отдельная машина, с админским доступом к ней у людей, которых можно пересчитать по пальцам одной руки.
    Если DoS-атаки возможны

    Если в локалке возможен DoS - админов нужно отправить мести двор, потому что это не админы.
    какие ещё угрозы могут быть для ИС (в данном случае для корпоративного сайта), расположенного внутри локальной сети.

    Зависит от того, что это за сайт, какой его функционал. Это может быть просто внутрикорпоративная новостная станция, стоящая домашней страницей. Это может быть сервис мониторинга. Это может быть gitea (очень модное нынче решение - git + трекер в одном флаконе).
    Ответ написан
    7 комментариев
  • Какие потенциальные угрозы (атаки) существуют для ИС (сайта)?

    Adamos
    @Adamos
    Если внутри локальной сети есть вайфай - лучше не считать ее локальной. Если в нее ходят еще три города, и вы их не контролируете - тоже.

    Защита сайта от заражения вирусами обеспечивается не установкой антивируса, а установкой сайта на отдельный сервер без доступа кого попало. И уж конечно, не на винду. И все равно - бэкап.

    DDoS-атака и брутфорс - это принципиально разные вещи.

    Использование "сложных паролей" и особенно требование регулярно их менять здорово помогает инсайдерам - потому что никто не может их запомнить и тупо записывает на самом видном месте.
    Ответ написан
    Комментировать
  • Как развернуть веб-приложение?

    Какая ОС должна быть установлена на сервере

    Если у тебя старый asp net, а не новый asp net core, то у тебя как минимум должна быть машина с Windows Server и IIS.

    Sql Server можно развернуть на ней же, а можно на линуксовой тачке - смотри что удобнее, в зависимости от имеющихся лицензий и компетенций админов.

    Если всё-таки asp net core, то можно развернуть на машине с Linux, например с Ubuntu. Для этого необходимо установить все зависимости (какие и как - написано в инструкции по установке на сайте MS). Для автоматического запуска при включении сервера и перезапуска при падении - заворачивай в systemd (нужно будет написать буквально 1 небольшой конфиг на десяток строчек - инструкции тоже есть в интернете)

    предоставить доступ к сайту не абсолютно всем пользователям в сети Интернет, а только филиалам предприятия

    Для этого, обычно, в рамках предприятия используют VPN - спроси у админов, вероятно он уже есть и они объяснят, как твой новый сервер в него внести. Они же помогут тебе прописать твой сервис в DNS.

    И как в данном случае приобретается доменное имя для поиска сайта, ведь в данном случае у предприятия собственный сервер и он не приобретает хостинг.

    Тк предполагается доступ только из сети предприятия - никакой домен приобретать не нужно.
    Всё прописывается в DNS предприятия.
    Ответ написан
    7 комментариев
  • Как развернуть веб-приложение?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ох уж советчики, ваши советы от бесполезных до вредных.

    Итак не знаю ваш тип приложения подразумеваю что что то типа asp.net (.NET 4.7.2)
    Оно работает только на сервере IIS.

    Развернуть его можно на любой ОС Windows 7, 8, 10,11 server 2012 2016

    Дальше для использования MS SQL Server. вполне достаточно версии Express. Ограничение там по моему 10 гигабайт.

    Далее машина должна быть в домене, но как я подозреваю у вас это все есть.
    Итак исходим из того что доменный контроллер и DNS находятся на хосте
    dc.local
    вам нужно создать машину
    jornal.local - не обязательно сервер можно и pro версию
    введите эту машину в домен, поднимите роль iis
    В Visual Studio выберите опубликовать приложение и выберите метод в папку. Потом просто скопируете файлы в папку на jornal.local

    После этого с любой машины в домене , в том числе и в филиалах просто переходите по адресу

    jornal.local jornal

    Эта конфигурация будет доступна только вашей организации и вашим филиалам. Доступа извне не будет, да и в общем то выставлять IIS наружу требуется определенный опыт.
    Ответ написан
    6 комментариев
  • Как развернуть веб-приложение?

    2ord
    @2ord
    Для MS SQL Server обычно берётся серверная редакция Windows на VPS, на которую она устанавливается вместе с ASP.NET. Настраивается веб-сервер с сертификатами для обслуживания клиентов приложения. Этим, как правило, занимается системный администратор.

    Если есть относительно большая нагрузка на СУБД, то могут выделять на отдельный сервер.
    Ответ написан
    Комментировать
  • Как развернуть веб-приложение?

    @oleg_ods
    Какая ОС должна быть установлена на сервере

    Любая с которой умеешь работать/готова разобраться как с ней работать. Я бы советовал что-то из серверных версий Unix(Ubuntu Server etc.)

    как вообще предоставить доступ к сайту не абсолютно всем пользователям в сети Интернет, а только филиалам предприятия?

    Простейший способ настроить вэб-сервер на прием запросов только от IP адресов филиалов. Гуглить настройка (Nginx, Apache, IIS) в зависимости что выберете.

    И как в данном случае приобретается доменное имя для поиска сайта

    Так же как и в других случаях) Доменное имя это запись в которой указано что при обращении к адресу mysupercompany.com переадресуй запросы на IP xxx.xxx.xxx.xxx, где xxx.xxx.xxx.xxx это IP вашего сервера. (Это если совсем простым языком)
    Ответ написан
    5 комментариев