MSSQL Linux Server Issue: SQL Server only supports SAFE assemblies [closed] - c#

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
We recently came across an issue when trying to register some custom SQL CLR assemblies we have created on SQL Server 2017 v14.0.3238.1.
First of all, these assemblies require that they have External Access Permission, as they call external APIs. It seems that this issue is only appearing when trying to run them on an MSSQL Server that is hosted on a Linux Environment.
In addition, we have tried creating asymmetric keys (both with SN.exe tool from Microsoft SDKs and through VS 2017) and also signing these CLR assemblies, without any luck. (Followed instructions as found on: https://techcommunity.microsoft.com/t5/SQL-Server-Support/Deploying-SQL-CLR-assembly-using-Asymmetric-key/ba-p/316727)
When trying to register the assemblies, we are receiving the error:
"Assembly 'Sample_CLR' cannot be loaded because this edition of SQL Server only supports SAFE assemblies."
Has anyone stumbled across a similar issue before?

This is documented in Unsupported features & services:
The following features and services are not available SQL Server 2019
on Linux. The support of these features will be increasingly enabled
over time.
Database engine
Merge replication
Stretch DB
Distributed query with 3rd-party connections
Linked Servers to data sources other than SQL Server
System extended stored procedures (XP_CMDSHELL, etc.)
Filetable, FILESTREAM
CLR assemblies with the EXTERNAL_ACCESS or UNSAFE permission set
Buffer Pool Extension
Emphasis mine
You can only use SAFE CLR functions on SQL Server on Linux. There is no work around, as it is a documented unsupported feature.

Related

Multiple instances of a WinForms application on one Windows system [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 1 year ago.
Improve this question
I have a complex legacy software which is a C# WinForms application, recently upgraded to .NET Framework 4.7.2 and added with a WCF REST API for external communication.
This application requires certain files on the disk, certain partitions needs to be available (such as a D: drive) and so forth (due to a lot of hardcoded file management etc). The app also requires a license USB dongle and a big SDK framework installed on the PC.
Now we would like to run several instances of this application in one server and get results out from it via its REST API. Is there any way we can do this? I guess several virtual machines would work, but is there any other way, Docker maybe?
Docker is out. As a commenter stated, Docker is not designed to mimic real hardware. See this comparison for more information.
I suggest a traditional Windows virtual machine and something like Hyper-V USB Passthrough.

Which database management system for a local (offline) small software? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I have spent a few days for implementation and testing some SQL-based database management system for my project. It's a small local shop management system, supposed to be sold to many of users and shop owners. It will be an offline system for owners and the staff of the shop, so we need to secure the database from unwanted accesses. I need a SQL database management system that works with .NET Winform (C#) EntityFramework and easy to build an installer package. These are what we have tried:
SQL server Express 2012: SQL database, free, works well with .NET and Entity Framework but pretty hard to build a perfect installer for users without having them to manually install SQL Server System on their computer and it doesn't protect the database from unwanted accesses.
Localdb: portable, free, works well with .NET and EF, easy to deploy, very reliable but again, not secure.
SQL Compact Edition: almost the same as Localdb, has its own password encryption feature for the database but has been deprecated, isn't stable enough and doesn't work really well with EF.
SQLite: just like SQL Compact edition.
SQL server 2016 Developer edition: same as SQL Server Express, plus the database encrytion (TDE), but I haven't figured out how to make a good installer.
There are tons of software like this out there, how did they solve these problems?
Looks like SQLite will suit your bill. Entity Framework does have an SQLite provider and the database itself requires no server software or other infrastructure to be set up, it’s literally just a file.
If you really want to make it secure, you could encrypt the entire database, but that would have certain memory and CPU requirements to work with. If you encrypt individual fields, the schema and individual fields will be visible. Foreign keys could be difficult with such setup.

Any portable Database that supports procedures [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am creating a Desktop application in .Net for which I need a database which is
Portable i.e. like MS-Access
Have facility of stored procedures like SQL Server.
All the databases that I look for do not have both of this facilities. For e.g. MS Access and SQL lite do not support procedures and SQL Server do not support portability.
Or there are alternate databases having these two qualities?
You can try using Firebird RDBMS
Major features:-
Full support of Stored Procedures and Triggers
Full ACID compliant transactions
Referential Integrity
Multi Generational Architecture
Very small footprint
Fully featured internal language for Stored Procedures and Triggers
(PSQL)
Support for External Functions (UDFs)
Little or no need for specialized DBAs
Almost no configuration needed - just install and start using!
Big community and lots of places where you can get free and good
support
Optional single file embedded version - great to create CDROM
catalogs, single user or evaluation versions of applications
Dozens of third party tools, including GUI administrative tools,
replication tools, etc. Careful writes - fast recovery, no need for
transaction logs!
Many ways to access your database: native/API, dbExpress drivers,
ODBC, OLEDB, .Net provider, JDBC native type 4 driver, Python module,
PHP, Perl, etc.
Native support for all major operating systems, including Windows,
Linux, Solaris, MacOS, HP-UX and FreeBSD.
Incremental Backups
64bits builds available
Full cursor implementation in PSQL
Monitoring tables
Connection and Transaction Triggers
Temporary Tables
TraceAPI - know what happens in your server

StatsD and Graphite-like tools for .Net and Windows [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I was recently sent this link to Statsd which would be an interesting tool for us to monitor various aspects of our product, but it would be a hard-sell for us because of the PHP and non-Windows toolset. (This question asks about installing this on Windows, without an answer...)
Can anyone recommend Windows / .Net toolsets that might provide similar low-overhead monitoring of systems? Within reason, paying for a toolset should not be a problem.
I did find this microsoft page that looks quite interesting, but let's be honest, it does not have as many cool graphs that show the kind of thing that would be nice to have as an end-result :)
Your experiences and thoughts on direction would be appreciated: I think our ultimate goal would be 'wall-boards' e.g. large screens cycling through several key graphs or views so the whole team could understand and monitor some key metrics of the products we are supporting. Our client uses SQL Server Reporting Services for this, but their reports seem to be mostly statistical and very little graphical.
I've ported Graphite to Windows. It was pretty easy to do this. I've issued a pull request to the main project. I hope it will get merged. Until then, you find the fork under:
https://github.com/stephanstapel/carbon
Graphite installation requires some additional steps I published here:
http://www.s2-industries.com/wordpress/2012/12/running-graphite-on-windows/
Why not run Graphite in a Linux VM on top of a windows server? You get the full support of the graphite community, while being completely hosted on windows.
If you were wanting to replicate statsd, I would create a Windows service listening via UDP on a specific port. With a fairly open database schema, you could mimic its low-friction fluidity. That would take care of statsd and Carbon, the data collector piece of Graphite. You would then need to write a management tool that analyzes and presents the data in place of Graphite.
I would, for this reason, encourage you to just take the Linux route. Otherwise, you'd be fighting every battle the developers of those tools fought all over again.

What Database to distribute as part of a C# app backend [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am planning on writing and commercialising a C# app which will store data in an underlying database
I use MySQL on my environment for my own development and this is what I would have used to write the application for myself (no need to use FK - MyISAM engine would be fine).
I am concerned about how easy it will be to distribute the app together with the database engine.
Would using MySQL allow me for easy packaging of the app for a "one-click" install on the client side? (ie I do not want them to have to install MySQL by themselves) and also is it feasible from a licensing point of view?
Are there other Database systems which would make the process more straight-forward
Take a look at SQL Server Compact 3.5
Sqlite is very simple. You just deploy the DLL with your app. I can't tell how appropriate it is for your situation, given the lack of info.
I think SQLite could do the trick, as it is a filesystem-based database, so no installation required.
Access could also do the trick, and most of businesses have it already installed as part of Microsoft Office, though you wouldn't need it to be installed in order to use the Odbc or OleDb assemblies that are part of the GAC.
The key here is what kind of database you need. Is this database to be shared among several users of the app? If so, than MySQL would be fine.
But it sounds more like you intend to use this database as a private data store, where each installed instance of the application has it's own data local to that machine or profile. In that case, you want an in-process engine like Sql Server Compact Edition, Sqlite, or even Access rather than a server-class engine like MySql or Sql Server Express Edition.
I think, that an embedded DBMS is the best way for yor. For example, you can use Firebird Embedded
SQL Server 2008 Express is available for redistribution by ISVs. You an also deploy this using Microsoft Web Platform Installer.
SQL Server Express is another option. Has excellent integration with .NET, free to install and supports upto 10GB per database (or more if you use the Filestream feature).

Categories

Resources