Tuesday, April 7, 2020

Crear cuenta db owner sin acceso a otras bases de datos.

use BaseDeDatosA_CrearLogin;
go
create login LoginName with password='tuclave';
GO
create user usuario for login LoginName;
GO
use BaseDeDatosA_CrearLogin
go
exec sp_addrolemember 'db_owner', 'usuario'
go


para Azure SQL scomo servicio

--en master Azure
drop user usr_
go
drop login usr_
go
--en la BBDD destino
--en master Azure
create login usr_ with password='XXXXXXXX';
GO
--en la BBDD destino
CREATE USER usr_ FROM LOGIN usr_ ;
go
create user usr_ for login usr_ ;
GO
--en la BBDD destino
exec sp_addrolemember 'db_owner', 'usr_ '
go

Saturday, March 28, 2020

Instalar SVN en Raspberry PI


sudo apt-get update

sudo apt-get install -y apache2 apache2-utils

sudo apt-get install -y subversion subversion-tools libapache2-mod-svn

sudo mkdir /var/lib/svn

sudo svnadmin create /var/lib/svn/SPO

sudo chown -R www-data:www-data /var/lib/svn/SPO/

sudo nano /etc/apache2/mods-enabled/dav_svn.conf

<Location /svn>
 DAV svn
#SVNParentPath /var/lib/svn
 SVNParentPath /1tb_local/svn
 AuthType Basic
 AuthName "Subversion Repository"
 AuthUserFile /etc/apache2/dav_svn.passwd
 Require valid-user
</Location>


#para el respaldo
svnadmin dump personal > personal.dump

#Para Crear usuarios
sudo htpasswd -cm /etc/apache2/dav_svn.passwd pbeltran

systemctl restart apache2

#para Restaurar
svnadmin load /var/lib/svn/SPO < /home/pi/SPO.dump

para validar http://ip/svn/personal/

Basado en:
https://www.itzgeek.com/how-tos/linux/debian/install-apache-svn-subversion-on-debian-9-ubuntu-16-04.html

https://servidordebian.org/es/buster/intranet/version_control/subversion

para el respaldo de visual SVN

svnadmin dump C:\Repositories\MyRepo --file C:\repo.dump

https://www.visualsvn.com/support/topic/00173/#:~:text=Start%20the%20VisualSVN%20Server%20Manager,repository%20dump%20and%20click%20Next.


Saturday, March 21, 2020

desactivar el enterono grafico


#para conocer el entorno grafico
systemctl get-default
#aca lo mas seguro es que diga graphical mode

#con este comando lo dejamos como consola.
systemctl set-default multi-user.target

#para volver a dejarlo con entorno grapfico
systemctl set-default graphical.target

Friday, March 20, 2020

IP fija - Red statica

sudo nano /etc/dhcpcd.conf
# Example static IP configuration:
interface eth0
static ip_address=192.168.1.116/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8 fd51:42f8:caae:d92e::1


para agregar DNS de movistar
# Example static IP configuration:
interface eth0
static ip_address=192.168.1.35/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 200.28.4.130 200.28.4.129

ubuntu 22

▪️ lsb_release -a ▪️ cd /etc/netplan ▪️ sudo nano 01-network-manager-al.yaml ❗️ Después, líneas a añadir en la terminal: ethernets: enp0s3: dhcp: no addresses: [IP_nueva/24] gateway: 192.68.##.1 nameservers: addresses: [8.8.8.8,8.8.4.4]

Friday, March 6, 2020

cannot drop database because it is currently in use.

-- Script para matar el proceso que no te permite eliminar la base de datos

DECLARE @DatabaseName nvarchar(50)
SET @DatabaseName = N'DatabaseName'

DECLARE @SQL varchar(max)

SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';'
FROM MASTER..SysProcesses
WHERE DBId = DB_ID(@DatabaseName) AND SPId <> @@SPId

--Use this to see results
SELECT @SQL
--Uncomment this to run it
EXEC(@SQL)

drop database DatabaseName

Monday, January 13, 2020

Cambiar el puerto de Apache Raspbian

#ejecutas este comando en la consola
sudo nano /etc/apache2/ports.conf

#donde dice
Listen 80
#cambiar por el puerto que deseas

Thursday, January 9, 2020

NetCore 3.1 Raspbian

#actualiza tu raspbian
sudo apt-get update
sudo apt-get upgrade -y

#baja el runtime y el SDK de dotnet core 3.1 
wget https://download.visualstudio.microsoft.com/download/pr/67766a96-eb8c-4cd2-bca4-ea63d2cc115c/7bf13840aa2ed88793b7315d5e0d74e6/dotnet-sdk-3.1.100-linux-arm.tar.gz

wget https://download.visualstudio.microsoft.com/download/pr/60d21925-7f8f-4004-9afe-aebd041d2d4a/0db2946738642d7f88f71f7800522e8c/dotnet-runtime-3.1.0-linux-arm.tar.gz

#creamos la carpeta donde quedará alojado el NetCore
mkdir dotnet-arm32
tar zxf dotnet-sdk-3.1.100-linux-arm.tar.gz -C $HOME/dotnet-arm32
tar zxf dotnet-runtime-3.1.0-linux-arm.tar.gz -C $HOME/dotnet-arm32

#solo puede ejecutar comandos .NET Core dentro de la carpeta dotnet-arm32. Para hacer que el comando "dotnet" se pueda ejecutar en todas partes, debe hacer algo como variables de entorno, que vincularán la carpeta dotnet-arm32 al nivel del sistema.

export DOTNET_ROOT=$HOME/dotnet-arm32
export PATH=$PATH:$HOME/dotnet-arm32

#Crea una app por consola para validar que funciono la instalacion
mkdir hello-netcore3.1
cd hello-netcore3.1/
dotnet new console
#para ejecutar el hola Mundo
dotnet run 
#Creamos la carpeta web
mkdir AspnetApp
cd AspnetApp/

#ahora podemos crear una app web con VS2019 , puede ser cualquiera solo debemos tener cuidado al publicar, ya que debe ser usando Framework-Dependent (FDD) y Portable. ya que esto se ejecutará nativamente en la Raspberry Pi

#en mi caso mi app se llama aspnetapp y para llamarla es colocando:

dotnet aspnetapp.dll 


# si ahora queremos que se auto ejecute 

sudo nano .profile 

# y agregamos esto al final del archivo.

export DOTNET_ROOT=$HOME/dotnet-arm32
export PATH=$PATH:$HOME/dotnet-arm32

# para validar que corre en todas las IPs de la máquina.
dotnet aspnetapp --urls "http://*:8080"

#finalmente hosteamos con nginx.
sudo apt-get install nginx -y
sudo /etc/init.d/nginx start

# respaldamos el archivo, siempre es bueno respaldar.
mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

#creamos el nuevo archivo
sudo nano /etc/nginx/sites-available/default

server {
    listen        80 default_server;
    server_name   _;
    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

Host by Nginx with auto-restart capability
First, install and start Nginx:

sudo nginx -t
sudo nginx -s reload


sudo nano /etc/systemd/system/kestrel-aspnetapp.service

[Unit]
Description=ASP.NET Core 3.1 App - AspNet

[Service]
WorkingDirectory=/home/pi/aspnetApp
ExecStart=/home/pi/dotnet-arm32/dotnet /home/pi/aspnetApp/aspnetapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-AspnetApp
User=pi
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target


sudo systemctl enable kestrel-aspnetapp.service
sudo systemctl start kestrel-aspnetapp.service
sudo systemctl status kestrel-aspnetapp.service

basado en https://edi.wang/post/2019/9/29/setup-net-core-30-runtime-and-sdk-on-raspberry-pi-4

editado por nuevo script bash de instalacion 
https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh